game2006admin_be/app/Helpers/Functions.php
2022-07-18 17:37:55 +08:00

63 lines
1.5 KiB
PHP

<?php
/**
* 取出多维数组的值,返回一维数组
* @param $arr
* @param array $res
* @return array
*/
function arrayValues($arr, $res = []) {
$values = array_values($arr);
$arr = [];
foreach ($values as &$item) {
if (is_array($item)) {
$arr = array_merge($item, $arr);
} else {
array_push($res, $item);
}
}
if ($arr) {
return arrayValues($arr, $res);
} else {
return array_values(array_unique($res));
}
}
/**
* 无限级结构
* @param array $data 数组
* @param string $primarykey 主键
* @param string $parentkey 父级键
* @param int $pid 父级id
* @param int $f 级别
* @return array
*/
function getCateList($list, $pid = 0, $primarykey = 'id', $parentkey = 'pid', $f = 0) {
static $temp = [];
foreach ($list as $val) {
if ($val[$parentkey] == $pid) {
$val['level'] = $f;
$temp[] = $val;
getCateList($list, $val[$primarykey], $primarykey, $parentkey, $f + 1);
}
}
return $temp;
}
/**
* 父子级树状结构
* @param array $list
* @param string $primary_key
* @param string $parent_key
* @return array|mixed
*/
function getTreeList($list, $primary_key = 'id', $parent_key = 'pid') {
$temp = [];
foreach ($list as $v) {
$v['children'] = [];
$temp[$v[$primary_key]] = $v;
}
foreach ($temp as $k => $v) {
$temp[$v[$parent_key]]['children'][] = &$temp[$v[$primary_key]];
}
return isset($temp[0]['children']) ? $temp[0]['children'] : [];
}