123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- <?php
- declare (strict_types=1);
- namespace library\utils;
- // +----------------------------------------------------------------------
- // | [ WE CAN DO IT MORE SIMPLE ]
- // +----------------------------------------------------------------------
- // | Copyright (c) 2018-2020 rights reserved.
- // +----------------------------------------------------------------------
- // | Author: TABLE ME
- // +----------------------------------------------------------------------
- // | Date: 2020-08-29 20:41
- // +----------------------------------------------------------------------
- /**
- * 操作数组帮助类
- * Class Arr
- * @package crmeb\utils
- */
- class Arr
- {
- /**
- * 对数组增加默认值
- * @param array $keys
- * @return array
- */
- public static function getDefaultValue(array $keys, array $configList = [])
- {
- $value = [];
- foreach ($keys as $val) {
- if (is_array($val)) {
- $k = $val[0] ?? '';
- $v = $val[1] ?? '';
- } else {
- $k = $val;
- $v = '';
- }
- $value[$k] = $configList[$k] ?? $v;
- }
- return $value;
- }
- /**
- * 转化iviewUi需要的key值
- * @param $data
- * @return array
- */
- public static function toIviewUi($data)
- {
- $newData = [];
- foreach ($data as $k => $v) {
- $temp = [];
- $temp['path'] = $v['path'];
- $temp['title'] = $v['title'];
- $temp['icon'] = $v['icon'];
- $temp['header'] = $v['code'];
- $temp['is_header'] = 0;
- if ($v['is_show_path']) {
- $temp['auth'] = ['hidden'];
- }
- if (!empty($v['children'])) {
- $temp['children'] = self::toIviewUi($v['children']);
- }
- $newData[] = $temp;
- }
- return $newData;
- }
- /**
- * 获取树型菜单
- * @param $data
- * @param int $pid
- * @param int $level
- * @return array
- */
- public static function getTree($data, $pid = 0, $level = 0)
- {
- $childs = self::getChild($data, $pid, $level);
- array_multisort(array_column($childs, 'seq'), SORT_DESC, $childs);
- foreach ($childs as $key => $navItem) {
- $resChild = self::getTree($data, $navItem['id']);
- if (null != $resChild) {
- $childs[$key]['children'] = $resChild;
- }
- }
- return $childs;
- }
- /**
- * 获取子菜单
- * @param $arr
- * @param $id
- * @param $lev
- * @return array
- */
- private static function getChild(&$arr, $id, $lev)
- {
- $child = [];
- foreach ($arr as $k => $value) {
- if ($value['pid'] == $id) {
- $value['level'] = $lev;
- $child[] = $value;
- }
- }
- return $child;
- }
- }
|