3v4l.org

run code in 300+ PHP versions simultaneously
<?php function array_group(array $array, callable|string $callback): array { $groups = []; if (!is_callable($callback)) { return $groups; } foreach ($array as $key => $value) { $groups[call_user_func($callback, $value)][$key] = $value; } return $groups; } $people = [ ["name" => "Billy Jean", "filter" => false], ["name" => "Ronald Reagan", "filter" => true], ["name" => "Bill Clinton", "filter" => true], ["name" => "Michael Jackson", "filter" => false], ["name" => "Johnny Cash", "filter" => false], ]; var_export( array_group( $people, fn($p) => substr($p["name"], 0, 4) ) );
Output for 8.0.1 - 8.0.30, 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.25, 8.4.1 - 8.4.12
array ( 'Bill' => array ( 0 => array ( 'name' => 'Billy Jean', 'filter' => false, ), 2 => array ( 'name' => 'Bill Clinton', 'filter' => true, ), ), 'Rona' => array ( 1 => array ( 'name' => 'Ronald Reagan', 'filter' => true, ), ), 'Mich' => array ( 3 => array ( 'name' => 'Michael Jackson', 'filter' => false, ), ), 'John' => array ( 4 => array ( 'name' => 'Johnny Cash', 'filter' => false, ), ), )
Output for 7.4.0 - 7.4.33
Parse error: syntax error, unexpected '|', expecting variable (T_VARIABLE) in /in/rQZnu on line 3
Process exited with code 255.

preferences:
85.85 ms | 407 KiB | 5 Q