首页 > 代码库 > PHP递归获取多层栏目

PHP递归获取多层栏目

 1     /** 2      * 返回多层栏目 3      * @param $data 操作的数组 4      * @param int $pid 一级PID的值 5      * @param string $html 栏目名称前缀 6      * @param string $fieldPri 唯一键名,如果是表则是表的主键 7      * @param string $fieldPid 父ID键名 8      * @param int $level 不需要传参数(执行时调用) 9      * @return array10      */11     public function channelLevel($data, $pid = 0, $html = " ", $fieldPri = ‘cid‘, $fieldPid = ‘pid‘, $level = 1)12     {13         if (empty($data)) {14             return array();15         }16         $arr = array();17         foreach ($data as $v) {18             if ($v[$fieldPid] == $pid) {19                 $arr[$v[$fieldPri]] = $v;20                 $arr[$v[$fieldPri]][‘level‘] = $level;21                 $arr[$v[$fieldPri]][‘html‘] = str_repeat($html, $level - 1);22                 $arr[$v[$fieldPri]]["data"] = $this->channelLevel($data, $v[$fieldPri], $html, $fieldPri, $fieldPid, $level + 1);23             }24         }25         return $arr;26     }

 

PHP递归获取多层栏目