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) ) );

preferences:
25.58 ms | 406 KiB | 5 Q