首页 > 编程 > PHP > 正文

php 实现递归的方式

2019-11-08 01:46:47
字体:
来源:转载
供稿:网友
/** * @param array $data 有层级关系的数据 * @param int $parent_id 父级id * @return array */function recursion($data=array(),$parent_id=0){ $arr = array(); foreach ($data as $key => $value) { if ($parent_id==$value['parent_id']) { $arr[$key]=$value; $arr[$key]['son']=recursion($data,$value['position_id']); } } return $arr; }/** * @param array $data * @param int $parent_id 父级id * @param int $level 层级 * @return array */ function recursion1($data=array(),$parent_id=0,$level=0){ static $arr=[]; foreach ($data as $key => $value) { if ($parent_id==$value['parent_id']) { $arr[$key]=$value; $arr['level']=str_replace('   ',$level); $arr[$key]['son']=recursion1($data,$value['position_id'],$level+2); } } return $arr; }/** * @param $data * @param int $fid 父级id * @param int $space 站位符 * @param int $leval 层级 * @return array */ function get_tree_list($data,$fid=0,$space=-4,$leval=1) { $space +=4; static $arr; foreach($data as $key=>$val) { if($val['parent_id'] == $fid) { $val['nbsp'] = str_repeat(' ',$space). 'ㅏ'; //$val['nbsps'] = str_repeat(' ',$space); $val['level'] = $leval; $arr[] = $val; get_tree_list($data,$val['position_id'],$space,$leval+1); } } return $arr; }
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表