无限极分类里面有时候你须要使用递归来将pid替换为对应的上级分类的名称,提升程序的友好度。php
/** * 给pid添加名称 * pid为零即顶级栏目 * 不为零找出对应栏目id将此栏目名称赋给下级栏目 * @param $data * @return array */ protected function addPidName($data) { static $ret=array(); foreach($data as $k=>$v){ if($v['pid'] != 0){ foreach ($data as $k1=>$v1){ if ($v['pid'] == $v1['catId']){ $v['pname'] = $v1['name']; $ret[] = $v; break;//为节约资源,达到目标就中止循环 } } }else{ $v['pname'] = '顶级栏目'; $ret[] = $v; } } $ret = array_reverse($ret);//foreach后得出数组为反序,须要再次逆排 return $ret; }
另附上php经常使用排序函数:数组