3v4l.org

run code in 300+ PHP versions simultaneously
<?php $products = array( [ 'id' => 12, 'group' => 'abc', 'name' => 'Lorem', ], [ 'id' => 12, 'group' => 'def', 'name' => 'Ipsum', ], [ 'id' => 34, 'group' => 'ghi', 'name' => 'Dolor', ], [ 'id' => 34, 'group' => 'jkl', 'name' => 'Sit', ], [ 'id' => 34, 'group' => 'mno', 'name' => 'Amet', ], ); $grouped = array_reduce($products, function ($c, $v) { $c[$v['id']][$v['group']] = $v; return $c; }, []); print_r($grouped); $products[] = [ 'id' => 34, 'group' => 'jkl', 'name' => 'Consectetur', ]; $grouped = array_reduce($products, function ($c, $v) { $c[$v['id']][$v['group']] = $v; return $c; }, []); print_r($grouped); $grouped = array_reduce($products, function ($c, $v) { $c[$v['id']][$v['group']][] = $v; return $c; }, []); print_r($grouped);
Output for 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.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.28, 8.4.1 - 8.4.14, 8.5.0
Array ( [12] => Array ( [abc] => Array ( [id] => 12 [group] => abc [name] => Lorem ) [def] => Array ( [id] => 12 [group] => def [name] => Ipsum ) ) [34] => Array ( [ghi] => Array ( [id] => 34 [group] => ghi [name] => Dolor ) [jkl] => Array ( [id] => 34 [group] => jkl [name] => Sit ) [mno] => Array ( [id] => 34 [group] => mno [name] => Amet ) ) ) Array ( [12] => Array ( [abc] => Array ( [id] => 12 [group] => abc [name] => Lorem ) [def] => Array ( [id] => 12 [group] => def [name] => Ipsum ) ) [34] => Array ( [ghi] => Array ( [id] => 34 [group] => ghi [name] => Dolor ) [jkl] => Array ( [id] => 34 [group] => jkl [name] => Consectetur ) [mno] => Array ( [id] => 34 [group] => mno [name] => Amet ) ) ) Array ( [12] => Array ( [abc] => Array ( [0] => Array ( [id] => 12 [group] => abc [name] => Lorem ) ) [def] => Array ( [0] => Array ( [id] => 12 [group] => def [name] => Ipsum ) ) ) [34] => Array ( [ghi] => Array ( [0] => Array ( [id] => 34 [group] => ghi [name] => Dolor ) ) [jkl] => Array ( [0] => Array ( [id] => 34 [group] => jkl [name] => Sit ) [1] => Array ( [id] => 34 [group] => jkl [name] => Consectetur ) ) [mno] => Array ( [0] => Array ( [id] => 34 [group] => mno [name] => Amet ) ) ) )
Output for 8.4.15
/bin/php-8.4.15: /usr/lib/libm.so.6: version `GLIBC_2.38' not found (required by /bin/php-8.4.15) /bin/php-8.4.15: /usr/lib/libm.so.6: version `GLIBC_2.35' not found (required by /bin/php-8.4.15) /bin/php-8.4.15: /usr/lib/libc.so.6: version `GLIBC_2.34' not found (required by /bin/php-8.4.15) /bin/php-8.4.15: /usr/lib/libc.so.6: version `GLIBC_2.38' not found (required by /bin/php-8.4.15)
Process exited with code 1.

preferences:
184.7 ms | 411 KiB | 5 Q