$res) { if ($res[$field] == $pid) { $res['html'] = str_repeat($html, $level); $res['level'] =$level; $list[] = $res; unset($data[$k]); self::sortListTier($data, $res[$pk], $field, $pk, $html, $level + 1, false); } } return $list; } public static function child_ztree($data,$pid=0,$field = 'pid',$level=1,$clear = true) { static $list = []; if ($clear) $list = []; foreach ($data as $k => $res) { if ($res[$field] == $pid) { $list["name"]=$res["name"]; $list["city"]=$res["name"]; unset($data[$k]); self::child_ztree($data, $res["id"], $field, $level + 1, false); } } return $list; } //无限分类数 /** 无限分类 * @param $array 分类数据 * @param string $pid 分类上级变量 * @param string $child 下一级变量名称 * @return array */ public static function SelectSon($array,$pid="pid",$child="son"){ $items = array(); foreach ($array as $value) { $items[$value['id']] = $value; } $tree = array(); foreach ($items as $key => $item) { if (isset($items[$item[$pid]])) { $items[$item[$pid]][$child][] = &$items[$key]; } else { $tree[$item[$pid]] = &$items[$key]; } } return $tree; } }