利用取地址操作符,对数组子元素进行归类

$a_data = [
 1 => [
        'id' => 1,
        'pid' => 0,
        'data' => []
    ],
 2 => [
        'id' => 2,
        'pid' => 1,
        'data' => []
    ],
];
$a_newData = [];
foreach($a_data as $key => $v):
    if($v['pid'] !== 0):
        $a_data[$v['pid']['sub']][] = &$a_data[$key];
    else:
        $a_newData[] = &$a_data[$key];
    endif;
endforeach;