浅谈 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递归的理解(递归听起来很高端的词汇 其实就是两次循环)的主要内容,如果未能解决你的问题,请参考以下文章

浅谈对递归算法的理解……

php 递归函数的三种实现方式

PHP实现递归的三种方法

那个PHP中号称最难的‘递归函数’

浅谈python中的递归

浅谈递归调用的个人领悟