3v4l.org

run code in 300+ PHP versions simultaneously
<?php $cats = [ ['id' => 1, 'category_style_code' => 'GA'], ['id' => 2, 'category_style_code' => 'PA'], ['id' => 3, 'category_style_code' => 'CA'], ['id' => 4, 'category_style_code' => 'MA'] ]; $prods = [ ['id' => 1, 'default_price' => 37.50, 'category_code' => 'MA'], ['id' => 2, 'default_price' => 36.50, 'category_code' => 'GA'], ['id' => 3, 'default_price' => 38.50, 'category_code' => 'CA'], ['id' => 4, 'default_price' => 39.50, 'category_code' => 'GA'], ]; $associative_cats = array_column($cats, null, 'category_style_code'); foreach ($prods as $row) { if (isset($associative_cats[$row['category_code']])) { $associative_cats[$row['category_code']]['products'][] = $row; } } var_export(array_values($associative_cats));
Output for 7.1.0 - 7.1.33, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.18, 8.3.0 - 8.3.6
array ( 0 => array ( 'id' => 1, 'category_style_code' => 'GA', 'products' => array ( 0 => array ( 'id' => 2, 'default_price' => 36.5, 'category_code' => 'GA', ), 1 => array ( 'id' => 4, 'default_price' => 39.5, 'category_code' => 'GA', ), ), ), 1 => array ( 'id' => 2, 'category_style_code' => 'PA', ), 2 => array ( 'id' => 3, 'category_style_code' => 'CA', 'products' => array ( 0 => array ( 'id' => 3, 'default_price' => 38.5, 'category_code' => 'CA', ), ), ), 3 => array ( 'id' => 4, 'category_style_code' => 'MA', 'products' => array ( 0 => array ( 'id' => 1, 'default_price' => 37.5, 'category_code' => 'MA', ), ), ), )

preferences:
217.82 ms | 405 KiB | 206 Q