将一维数组处理为树状数组
/** 处理树形结构
* @param array $list =待处理的数组列表
* @param $field = 父级字段
* @param int $pid = 父级id
* @param array $tree =处理后的数组
* @return array
* @author:xcz
* @Date: 2024/4/30 14:02
*/
private function handleTreeChild(array $list, $field, int $pid = 0, array &$tree = []): array
{
foreach ($list as $v) {
if (isset($v[$field]) && $v[$field] == $pid) {
$children = []; // 初始化子数组
$this->handleTreeChild($list, $field, $v['id'], $children); // 递归获取子记录
$v['children'] = $children;
if (empty($children)) { // 根据是否有子元素设置children
unset($v['children']);
}
$tree[] = $v;
}
}
return $tree;
}