资讯

展开

Fatal-error:-Allowed-memory-size-of-递归出现内存溢出

作者:快盘下载 人气:

检查数据的准确性。子子孙孙无穷尽也;你不溢出谁溢出;

Fatal-error:-Allowed-memory-size-of-递归出现内存溢出
php查询所有的子集用户;递归是常用方法。

public function get_attr($array,$id){
        $tree = array();                                //每次都声明一个新数组用来放子元素
        foreach($array as $v){
            if($v[;pid;] == $id){                      //匹配子记录
                $v[;children;] = $this->get_attr($array,$v[;id;]); //递归获取子记录
                if($v[;children;] == null){
                    unset($v[;children;]);             //如果子元素为空则unset()进行删除;说明已经到该分支的最后一个元素了;可选;
                }
                $tree[] = $v;                           //将记录存入新数组
            }
        }
        return $tree;                                  //返回新数组
    }

如果说你确保你的代码是完全没有问题;有递归过程和退出。但是任然有内存溢出。就像这样

把我坑大发了;把我的代码瞅来瞅去;没问题呀;嗯;网上一查;说是php版本的问题;要把内存限制改大点;我都从128M改到1024M了;还是这样子。崩溃了。

实在是没办法了。就把数据库的数据拿出来看。自己按照机器的方式跑了一遍;才发现问题。 问题出在了原始数据上;;

$list=array(
array(;id;=>1,;name;=>;父类;,;pid;=>3),
array(;id;=>2,;name;=>;子类;,;pid;=>1),
array(;id;=>3,;name;=>;孙类;,;pid;=>2),
);

子子孙孙无穷尽也;你品;你细品;是数据让程序在里面绕死了;

递归;数据的准确也非常、非常重要

加载全部内容

相关教程
猜你喜欢
用户评论
快盘暂不提供评论功能!