PHP實現父節點查找所有子節點的ID

經常有人問到,知道父節點,怎麼查找所有子節點的數據ID呢,今天小編也遇到一位大佬,問我同樣的問題,我想了半天沒想到,打開電腦,準備一試,就想到以下方法實現

//找出節點2 下面的所有子節點的ID
$a = [
            ['id' => 1, 'pid' => 0],
            ['id' => 2, 'pid' => 0],
            ['id' => 3, 'pid' => 0],
            ['id' => 4, 'pid' => 2],
            ['id' => 5, 'pid' => 2],
            ['id' => 6, 'pid' => 2],
            ['id' => 8, 'pid' => 4],
            ['id' => 9, 'pid' => 2],
            ['id' => 12, 'pid' => 8],
            ['id' => 13, 'pid' => 4],
            ['id' => 14, 'pid' => 13],
 ];
$data=[];
foreach ($a as $b)
{
     if ($b['pid'] == 2)
     {
          $data[]=$b['id'];
     }
     if(in_array($b['pid'],$data)){
          $data[]=$b['id'];
     }
}
dd($data);

如有大家有更好的方法,可以留言給我,我在補充完善

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章