php 递归从后往前,PHP反向递归

试试我这个:

function createMenuTree($data = array(), $pid = 0){

if (empty($data)){

return array();

}

static $level = 1;

$returnArray = array();

foreach ($data as $node){

if ($node['parent_id'] == $pid){

$returnArray[] = array(

'cat_id' => $node['cat_id'],

'cat_name' => $node['cat_name'],

'level' => $level,

'parent_id' => $node['parent_id'],

'show_in_nav' => $node['show_in_nav'],

'is_show' => $node['is_show'],

'sort_order' => $node['sort_order']

);

if (hasChild($node['cat_id'], $data)){

$level++;

$returnArray = array_merge($returnArray, createMenuTree($data, $node['cat_id']));

$level--;

}

}

}

return $returnArray;

}

function hasChild($cid, $data){

$hasChild = false;

foreach ($data as $node){

if ($node['parent_id'] == $cid){

$hasChild = true;

break;

}

}

return $hasChild;

}

字段跟你的不是很一样,但是思路好像跟你想要的差不多,你可以自己拿去修改一下。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值