3v4l.org

run code in 300+ PHP versions simultaneously
<?php $arr = array ( 1 => array ( 'id' => '1', 'name' => ' Category', 'id_parent' => '0', 'ativo' => '1', ), 2 => array ( 'id' => '2', 'name' => ' Slippers', 'id_parent' => '0', 'ativo' => '1', ), 3 => array ( 'id' => '3', 'name' => ' TShirts', 'id_parent' => '0', 'ativo' => '1', ), 4 => array ( 'id' => '4', 'name' => ' BlousesSweatshirt', 'id_parent' => '0', 'ativo' => '1', ), 5 => array ( 'id' => '5', 'name' => ' Cap', 'id_parent' => '0', 'ativo' => '1', ), 6 => array ( 'id' => '6', 'name' => ' Stickers', 'id_parent' => '0', 'ativo' => '1', ), 7 => array ( 'id' => '7', 'name' => ' ScreensandFrames', 'id_parent' => '0', 'ativo' => '1', ), 8 => array ( 'id' => '8', 'name' => ' Models', 'id_parent' => '0', 'ativo' => '1', ), 9 => array ( 'id' => '9', 'name' => ' Notebook', 'id_parent' => '6', 'ativo' => '1', ), 10 => array ( 'id' => '10', 'name' => ' Door', 'id_parent' => '0', 'ativo' => '1', ), 11 => array ( 'id' => '11', 'name' => ' Door', 'id_parent' => '6', 'ativo' => '1', ), 12 => array ( 'id' => '12', 'name' => ' Kangaroo', 'id_parent' => '4', 'ativo' => '1', ), 13 => array ( 'id' => '13', 'name' => ' KangarooRaglan', 'id_parent' => '4', 'ativo' => '1', ), 14 => array ( 'id' => '14', 'name' => ' RoundCollar', 'id_parent' => '4', 'ativo' => '1', ), 15 => array ( 'id' => '15', 'name' => ' Trucker', 'id_parent' => '5', 'ativo' => '1', ), 16 => array ( 'id' => '16', 'name' => ' Basic', 'id_parent' => '3', 'ativo' => '1', ), 17 => array ( 'id' => '17', 'name' => ' Longline', 'id_parent' => '3', 'ativo' => '1', ), 18 => array ( 'id' => '18', 'name' => ' Raglan', 'id_parent' => '3', 'ativo' => '1', ), 19 => array ( 'id' => '19', 'name' => ' Raglan3/4', 'id_parent' => '3', 'ativo' => '1', ), 20 => array ( 'id' => '20', 'name' => ' Regatta', 'id_parent' => '3', 'ativo' => '1', ), 21 => array ( 'id' => '21', 'name' => ' Slide', 'id_parent' => '2', 'ativo' => '1', ), 22 => array ( 'id' => '22', 'name' => ' Stickers', 'id_parent' => '8', 'ativo' => '1', ), 23 => array ( 'id' => '23', 'name' => ' Notebook', 'id_parent' => '22', 'ativo' => '1', ), 24 => array ( 'id' => '24', 'name' => ' T-shirt', 'id_parent' => '8', 'ativo' => '1', ), 25 => array ( 'id' => '25', 'name' => ' Basic', 'id_parent' => '24', 'ativo' => '1', ), 26 => array ( 'id' => '26', 'name' => ' Slippers', 'id_parent' => '8', 'ativo' => '1', ), 27 => array ( 'id' => '27', 'name' => ' Slide', 'id_parent' => '26', 'ativo' => '1', ), 28 => array ( 'id' => '28', 'name' => ' 1Screen', 'id_parent' => '7', 'ativo' => '1', ), 29 => array ( 'id' => '29', 'name' => ' Set3Screens', 'id_parent' => '7', 'ativo' => '1', ), 30 => array ( 'id' => '30', 'name' => ' Set5Screens', 'id_parent' => '7', 'ativo' => '1', ), 31 => array ( 'id' => '31', 'name' => ' BlousesSweatshirt', 'id_parent' => '8', 'ativo' => '1', ), 32 => array ( 'id' => '32', 'name' => ' Cap', 'id_parent' => '8', 'ativo' => '1', ), 33 => array ( 'id' => '33', 'name' => ' ScreensandFrames', 'id_parent' => '8', 'ativo' => '1', ), ); $temp = array_column($arr, "id"); $ids[0] = "NULL"; $ids = array_merge($ids, $temp); $temp = array_column($arr, "id_parent"); $parents[0] = "NULL"; $parents = array_merge($parents, $temp); Foreach(array_unique($parents) as $parent){ if($parent ==0) continue; $new[$parent]['parent'] = $arr[$parent]; $new[$parent]['children'] = array_intersect_key($arr, array_intersect($parents, [$parent])); } Var_dump($new);

preferences:
54.14 ms | 402 KiB | 5 Q