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 array
10 */
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 }