function getTrees($array, $pid=0){
$tree = [];
foreach ($array as $item) {
if ($item['superior_id'] == $pid) {
$item['children'] = $this->getTrees($array, $item['id']);
$tree[] = $item;
}
}
return $tree;
}
public function getTrees(array $direy)
{
$tree = [];
foreach ($direy as $item) {
$data = [];
$data[MaterialDirectoriesModel::NAME] = $item[MaterialDirectoriesModel::NAME];
$data[MaterialDirectoriesModel::UID] = $item[MaterialDirectoriesModel::UID];
if (count($item['children']) > 0) {
$data['children'] = $this->getTrees($item['children']);
}
$tree[] = $data;
}
return $tree;
}
通用
function getDataTree($items, $idKey, $pidKey, int $pid = 0): array
{
$tree = [];
foreach ($items as $idx => $item) {
if ($item[$pidKey] == $pid) {
$children = getDataTree($items, $idKey, $pidKey, $item[$idKey]);
if ($children) {
$item['children'] = $children;
unset($items[$idx]);
}
$tree[] = $item;
}
}
return $tree;
}
根据当前部门id查询上级部门
function getPidDp($id)
{
$tree = [];
$dpt = Department::where('qxid', $id)->find();
if (!empty($dpt)) {
$tree = getPidDp($dpt['parentid']);
$tree[] = $dpt['name'];
}
return $tree;
}
递归另外写法
function getDepartment($id, $departments) {
$department = array();
foreach ($departments as $key => $value) {
if ($value['parent_id'] == $id) {
$department[] = $value;
$department = array_merge($department, getDepartment($value['id'], $departments));
}
}
return $department;
}