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);

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

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