123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- <?php
- /**
- * Created by PhpStorm.
- * User: Administrator
- * Date: 2020/3/20
- * Time: 15:25
- */
- namespace app\admin\model;
- use think\facade\Db;
- class Ztrees
- {
- /**
- * 分级排序
- * @param $data
- * @param int $pid
- * @param string $field
- * @param string $pk
- * @param string $html
- * @param int $level
- * @param bool $clear
- * @return array
- */
- public static function sortListTier($data, $pid = 0, $field = 'pid', $pk = 'id', $html = '|-----', $level = 1, $clear = true)
- {
- static $list = [];
- if ($clear) $list = [];
- foreach ($data as $k => $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;
- }
- }
|