多语言展示
当前在线:245今日阅读:167今日分享:16

php递归无限极分类速度慢怎么办

小编今天为大家带来php递归无限极分类速度慢怎么办,帮助大家解决在生活中遇到的一些小问题,让大家开心每一天。
方法/步骤
1

//假设你有一个符合递归要求的数据表 //这里取出全部数据 这里假设结果为:$countryList $countryList = $city->getChildrenList(); $listdata = array(); foreach($countryList as $coun){     $listdata[$coun['id']] = $coun;     //这里以`$coun['id']`为参数 取出下一级数据

2

假设结果为:$provinceList     foreach($provinceList as $province){         $listdata[$province['id']] = $province;         $listdata[$province['id']]['country'] = $coun['name']。

3

//这里以`$province['id']`为参数 取得最后一级数据 假设结果为:$area         foreach($area as $v){             $listdata[$v['id']] = $v;             $listdata[$v['id']]['province'] = $province['name'];             $listdata[$v['id']]['country'] = $coun['name'];         }     } } //三维数组 递归完成。

5

首先 将json 解码成数组, 用json_decode 函数 注意 一定要加上第二个参数 否则他会返回一个对象。接下来就是地递归了。这是一个最简单的递归只要逐个遍历即可。

6

下面是完整的代码: $data= json_decode($str,true); $options = getChildren($data); function getChildren($parent,$deep=0) { foreach($parent as $row) { $data[] = array('id'=>$row['id'], 'name'=>$row['name'],'pid'=>$row['parentid'],'deep'=>$deep); if ($row['childs']) { $data = array_merge($data, getChildren($row['childs'], $deep+1)); } } return $data; } ?>

推荐信息