浅谈 PHP递归的理解(递归听起来很高端的词汇 其实就是两次循环)
Posted wu-yu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了浅谈 PHP递归的理解(递归听起来很高端的词汇 其实就是两次循环)相关的知识,希望对你有一定的参考价值。
$data = [ [‘pid‘=>0,‘id‘=>1], [‘pid‘=>1,‘id‘=>2], [‘pid‘=>3,‘id‘=>4], [‘pid‘=>0,‘id‘=>3], ];
//对上面的数据进行递归排序(原生的写法) function genCate( $data, $pid = 0) { static $result = array(); foreach ($data as $key => $row) { if ($row[‘pid‘] == $pid) { $result[] = $row;
$parent_id = $row[‘id‘]; foreach($data as $v){ if ($v[‘pid‘] == $parent_id) { $result[] = $v; } }
} } return $result; }
php递归的写法
function genCate( $data, $pid = 0) { static $result = array(); foreach ($data as $key => $row) { if ($row[‘pid‘] == $pid) { $result[] = $row; // $parent_id = $row[‘id‘]; genCate($data, $row[‘id‘]); /* foreach($data as $v){ if ($v[‘pid‘] == $parent_id) { $result[] = $v; } }*/ } } return $result; }
其实就是同一个数组两次循环 通过变动的是父id 不断找子元素
以上是关于浅谈 PHP递归的理解(递归听起来很高端的词汇 其实就是两次循环)的主要内容,如果未能解决你的问题,请参考以下文章