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 git.master, git.master_jit, rfc.property-hooks
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 ) ) ) )

This tab shows result from various feature-branches currently under review by the php developers. Contact me to have additional branches featured.

Active branches

Archived branches

Once feature-branches are merged or declined, they are no longer available. Their functionality (when merged) can be viewed from the main output page


preferences:
130.36 ms | 417 KiB | 5 Q