3v4l.org

run code in 300+ PHP versions simultaneously
<?php $init = [ [ 'unique_codename'=>'cars', 'sorts'=>[ ['codename' => 'cars', 'name' => 'audi'], ['codename' => 'cars', 'name' => 'volvo'] ], 'category'=>'vehicle', ], [ 'unique_codename'=>'fruit', 'sorts'=>[ ['codename' => 'fruit', 'name' => 'banana'], ['codename' => 'fruit', 'name' => 'apple'], ], 'category'=>'food', ], [ 'unique_codename'=>'vegetables', 'sorts'=>[ ['codename' => 'vegetables', 'name' => 'cauliflower'], ], 'category'=>'food', ], ]; $array = [ ['codename'=>'fruit', 'name'=>'banana', 'type'=>'yellowbanana'], ['codename'=>'fruit', 'name'=>'banana', 'type'=>'brownbanana'], ['codename'=>'cars', 'name'=>'audi', 'type'=>'a2'], ['codename'=>'fruit', 'name'=>'banana', 'type'=>'greenbanana'], ['codename'=>'cars', 'name'=>'audi', 'type'=>'a6'], ['codename'=>'cars', 'name'=>'other', 'type'=>'dummytext1'], ['codename'=>'cars', 'name'=>'other', 'type'=>'dummytext2'], ]; $init = array_combine(array_column($init, 'unique_codename'), $init); foreach ($array as $k => $item) { if (isset($init[$item['codename']])) { foreach ($init[$item['codename']]['sorts'] as &$sort) { if ($sort['name'] == $item['name']) { $sort['types'][] = $item['type']; } } } } print_r(array_values($init));
Output for 5.6.0 - 5.6.40, 7.0.0 - 7.0.33, 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.19, 8.3.0 - 8.3.4, 8.3.6 - 8.3.7
Array ( [0] => Array ( [unique_codename] => cars [sorts] => Array ( [0] => Array ( [codename] => cars [name] => audi [types] => Array ( [0] => a2 [1] => a6 ) ) [1] => Array ( [codename] => cars [name] => volvo ) ) [category] => vehicle ) [1] => Array ( [unique_codename] => fruit [sorts] => Array ( [0] => Array ( [codename] => fruit [name] => banana [types] => Array ( [0] => yellowbanana [1] => brownbanana [2] => greenbanana ) ) [1] => Array ( [codename] => fruit [name] => apple ) ) [category] => food ) [2] => Array ( [unique_codename] => vegetables [sorts] => Array ( [0] => Array ( [codename] => vegetables [name] => cauliflower ) ) [category] => food ) )
Output for 8.3.5
Warning: PHP Startup: Unable to load dynamic library 'sodium.so' (tried: /usr/lib/php/8.3.5/modules/sodium.so (libsodium.so.23: cannot open shared object file: No such file or directory), /usr/lib/php/8.3.5/modules/sodium.so.so (/usr/lib/php/8.3.5/modules/sodium.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0 Array ( [0] => Array ( [unique_codename] => cars [sorts] => Array ( [0] => Array ( [codename] => cars [name] => audi [types] => Array ( [0] => a2 [1] => a6 ) ) [1] => Array ( [codename] => cars [name] => volvo ) ) [category] => vehicle ) [1] => Array ( [unique_codename] => fruit [sorts] => Array ( [0] => Array ( [codename] => fruit [name] => banana [types] => Array ( [0] => yellowbanana [1] => brownbanana [2] => greenbanana ) ) [1] => Array ( [codename] => fruit [name] => apple ) ) [category] => food ) [2] => Array ( [unique_codename] => vegetables [sorts] => Array ( [0] => Array ( [codename] => vegetables [name] => cauliflower ) ) [category] => food ) )

preferences:
172.74 ms | 413 KiB | 290 Q