代码片段
/**
* 把有级联关系的数组格式化为级联格式
* @param array datas 每一项包含 parent_id 字段
*/
function formatDataToCascade($datas, $parent_id = 0)
{
$new_datas = [];
if (!is_array($datas)) {
throw new \Exception('参数类型不正确');
}
$len = count($datas);
for ($i = 0; $i < $len; $i++) {
$data = $datas[$i];
if ($data['parent_id'] == $parent_id) {
unset($datas[$i]);
$data['children'] = formatDataToCascade(array_values($datas), $data['id']);
$new_datas[] = $data;
}
}
$new_datas[] = $temp_datas;
return $new_datas;
}