• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

PHP N选M算法 大数组打印不出来

php 搞代码 3年前 (2022-01-23) 19次浏览 已收录 0个评论
文章目录[隐藏]
function Combination($sort, $num){    $result = $data = array();    if( $num == 1 ) {        return $sort;    }    foreach( $sort as $k=>$v ) {        unset($sort[$k]);        $data   = Combination($sort,$num-1);        foreach($data as $row) {            $result[] = $v.','.$row;        }    }    return $result;}$starttime = explode(' ',microtime());$arr    = array(1,2,3,4,5,6,7,8,9,1,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33);//这个是组合$res        = Combination($arr,6);print_r($res);$endtime = explode(' ',microtime());$thistime = $endtime[0]+$endtime[1]-($starttime[0]+$starttime[1]);$thistime = round($thistime,3);echo "本网页执行耗时:".$thistime." 秒";

我测试了好多,这个效率还可以33选5 1点多秒就出来了,但是选6的话,就出现500错误,我的是IIS7.5+PHP5.6 FAST-CGI模式!为啥会500错误,是不是数组太大,要调PHP.INI啊。哪个参数是

回复讨论(解决方案)

打开 php 的错误显示功能,你会看到 Fatal error: Allowed memory size of …… 这样的错误
内存不够了!

考虑是给php分配的内存不够用,ini_set(‘memory_limit’,’+本文来源gao@daima#com搞(%代@#码网

搞代gaodaima码

500M’)试下

不知道我理解的对不对
N选M,如果允许重复值,每次调用随机数键名对应的值就好
如果不允许重复值,使用shuffle()函数随机排列,然后直接取前M个元素


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:PHP N选M算法 大数组打印不出来
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址