3v4l.org

run code in 300+ PHP versions simultaneously
<?php $full_cats= array( array("parent_cats" => array ( "id" => "384", "name" => "Beers &amp; Ales", "parent" => "0" ) ), array("parent_cats" => array ( "id" => "387", "name" => "Wines", "parent" => "0" ) )); $sub_cats=array( array("sub_cats" => array ( "id" => "386", "name" => "Ales", "parent" => "384" ) ), array("sub_cats" => array ( "id" => "385", "name" => "Beers", "parent" => "384" ) ), array("sub_cats" => array ( "id" => "403", "name" => "Red", "parent" => "387" ) )); $all = []; $tmpsubs = []; foreach ($full_cats as $parent) { $tmp = ['parent_cats' => $parent['parent_cats'], 'sub_cats' => []]; foreach ($sub_cats as $sub) { if ($sub['sub_cats']['parent'] == $parent['parent_cats']['id']) { $tmp['sub_cats'][]=$sub['sub_cats']; } } $all[] = $tmp; } var_export($all);

preferences:
29.86 ms | 404 KiB | 5 Q