码迷,mamicode.com
首页 > 编程语言 > 详细

PHP递归算法

时间:2015-01-28 17:27:51      阅读:143      评论:0      收藏:0      [点我收藏+]

标签:

/**
* 获取菜单
* @param number $id
* @return multitype:
*/
public function menu($id = 0) {
$menu = M ( ‘menu‘ );
$arrlist = array (); // 数组必须初始化,否push不进去
$where [‘app‘] = ‘Portal‘;
$where [‘parentid‘] = $id;
$where [‘status‘] = 1;
$parent = $menu->order ( ‘listorder asc‘ )->where ( $where )->select ();//判断是否包含children元素
for($i = 0; $i < count ( $parent ); $i ++) {
$arr [‘name‘] = $parent [$i] [‘name‘];
$arr [‘id‘] = $parent [$i] [‘id‘];
if($id!=0)
{
$arr [‘link‘] = U ( $parent [$i] [‘app‘] . ‘/‘ . $parent [$i] [‘model‘] . ‘/‘ . $parent [$i] [‘action‘] . ‘/‘ . $parent [$i] [‘data‘] . ‘/tid/‘ . $parent [$i] [‘parentid‘] . ‘/id/‘ . $parent [$i] [‘id‘] );
}

else
{
$arr [‘link‘] = U ( $parent [$i] [‘app‘] . ‘/‘ . $parent [$i] [‘model‘] . ‘/‘ . $parent [$i] [‘action‘] . ‘/‘ . $parent [$i] [‘data‘] . ‘/tid/‘ . $parent [$i] [‘id‘] );
}

$arr [‘child‘] = $this->menu ( $parent [$i] [‘id‘] );
array_push ( $arrlist, $arr );   //执行完成这个方法后继续进行下一次递归
}
return $arrlist; // 一次递归完成  然后执行 array_push方法  
}

PHP递归算法

标签:

原文地址:http://www.cnblogs.com/sunzhenyong/p/4256113.html

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