/**
* @Author:小破孩
* @Email:3584685883@qq.com
* @Time:2024/12/17 22:27
* @param $arr
* @param $id
* @param $pid
* @return array
* @Description:树形分类 如果子集的pid不是空,父级id不存在,则子集不展示
*/
public function getTreeByDateDelChile($arr,$id,$pid) {
$items = [];
foreach($arr as $v){
$items[$v[$id]] = $v;
}
$tree = [];
foreach($items as $k => $item){
if($item[$pid] &&!isset($items[$item[$pid]])){
unset($items[$k]);
continue;
}
if(isset($items[$item[$pid]])){
$items[$item[$pid]]['child'][] = &$items[$k];
}else{
$tree[] = &$items[$k];
}
}
return $tree;
}
/**
* @Author:小破孩
* @Email:3584685883@qq.com
* @Time:2024/9/14 16:59
* @param array $arr
* @param string $children
* @return array
* @Description:将树形数组转换成一维数组
*/
public function setManyTosingle(array $arr = [], string $children = 'child'): array {
$result = [];
foreach ($arr as $item) {
// 先将当前节点添加到结果数组中
$newItem = $item;
if (isset($newItem[$children])) {
unset($newItem[$children]);
}
$result[] = $newItem;
// 递归处理子节点
if (isset($item[$children]) && is_array($item[$children])) {
$result = array_merge($result, $this->setManyTosingle($item[$children], $children));
}
}
return $result;
}
版权属于:
小破孩
作品采用:
《
署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)
》许可协议授权
评论 (0)