lockdown56
2/13/2017 - 8:25 AM

代码片段

代码片段

/** 
 * 把有级联关系的数组格式化为级联格式
 * @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;
}