码迷,mamicode.com
首页 > Web开发 > 详细

浅谈 PHP递归的理解(递归听起来很高端的词汇 其实就是两次循环)

时间:2018-10-29 17:56:14      阅读:212      评论:0      收藏:0      [点我收藏+]

标签:UNC   数组   color   code   就是   递归的理解   data   []   stat   

$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递归的理解(递归听起来很高端的词汇 其实就是两次循环)

标签:UNC   数组   color   code   就是   递归的理解   data   []   stat   

原文地址:https://www.cnblogs.com/wu-yu/p/9871981.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!