| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131 | 
							- <?php
 
- /**
 
-  * Created by PhpStorm.
 
-  * User: yckj-yf7
 
-  * Date: 2021/9/24
 
-  * Time: 17:25
 
-  */
 
- namespace app\common\util;
 
- /**
 
-  * 工具类
 
-  * @package app\common\util
 
-  */
 
- class Util
 
- {
 
-     /**
 
-      * 获取一定配置下的父子级的数据集合
 
-      * @param $list 一维的数据集合
 
-      * @param array $option 配置
 
-      *              field 判断子级的字段名,默认为id
 
-      *              parent_field 判断父级的字段名,默认为pid
 
-      *              children 写入返回值的字段名,默认为children
 
-      *              default 默认搜索开始的数值,默认为0
 
-      * @return array|mixed
 
-      */
 
-     public static function getChildrenList($list, $option = []){
 
-         $field = isset($option['field'])?$option['field']:'id';
 
-         $parent_field = isset($option['parent_field'])?$option['parent_field']:'pid';
 
-         $children_name = isset($option['children'])?$option['children']:'children';
 
-         $default = isset($option['default'])?$option['default']:0;
 
-         //按父级生成索引数组
 
-         $index_data = [];
 
-         foreach ($list as $item){
 
-             $index_data[$item[$parent_field]][] = $item;
 
-         }
 
-         unset($item);
 
-         return self::setChildren($index_data,$default,$field,$children_name);
 
-     }
 
-     /**
 
-      * 写入子集
 
-      * @param $index_data 索引数组
 
-      * @param $pid 父级数值
 
-      * @param $field 关联字段名
 
-      * @param $children_name 写入的子集字段名
 
-      * @return array|mixed
 
-      */
 
-     private static function setChildren($index_data, $pid, $field, $children_name){
 
-         if (isset($index_data[$pid])){
 
-             $list = $index_data[$pid];
 
-             foreach ($list as &$item){
 
-                 $children = self::setChildren($index_data,$item[$field],$field, $children_name);
 
-                 if (count($children)>0){
 
-                     $item[$children_name] = $children;
 
-                 }
 
-             }
 
-             return $list;
 
-         }else{
 
-             return [];
 
-         }
 
-     }
 
-     /**
 
-      * 获取两个日期之间的日期数组
 
-      * @param $start_time
 
-      * @param $end_time
 
-      * @return mixed
 
-      */
 
-     public static function getPeriodDate($start_time,$end_time){
 
-         $start_time = strtotime($start_time);
 
-         $end_time = strtotime($end_time);
 
-         $i = 0;
 
-         $arr = [];
 
-         while ($start_time <= $end_time){
 
-             $arr[$i] = date('Y-m-d',$start_time);
 
-             $start_time = strtotime('+1 day',$start_time);
 
-             $i++;
 
-         }
 
-         return $arr;
 
-     }
 
-     /**
 
-      * 根据数字转换成excel的字母
 
-      * @param $num
 
-      * @return string
 
-      */
 
-     public static function numToExcelLetter($num)
 
-     {
 
-         //由于大写字母只有26个,所以基数为26
 
-         $base = 26;
 
-         $result = '';
 
-         while ($num > 0 ) {
 
-             $mod = (int)($num % $base);
 
-             $num = (int)($num / $base);
 
-             if($mod == 0){
 
-                 $num -= 1;
 
-                 $temp = self::numToLetter($base) . $result;
 
-             } elseif ($num == 0) {
 
-                 $temp = self::numToLetter($mod) . $result;
 
-             } else {
 
-                 $temp = self::numToLetter($mod) . $result;
 
-             }
 
-             $result = $temp;
 
-         }
 
-         return $result;
 
-     }
 
-     /**
 
-      * 数字转字母
 
-      * @param $num
 
-      * @return string
 
-      */
 
-     public static function numToLetter($num)
 
-     {
 
-         if ($num == 0) {
 
-             return '';
 
-         }
 
-         $num = (int)$num - 1;
 
-         //获取A的ascii码
 
-         $ordA = ord('A');
 
-         return chr($ordA + $num);
 
-     }
 
- }
 
 
  |