3v4l.org

run code in 300+ PHP versions simultaneously
<?php $array = [ 'Foo', 'bAr' => 'BaR', 'suB' => [ 'a' => 1, 2 => 'b', 'C' => null, ], 'obj' => (object) [ 'd' => 1.333, 'SubArR' => [ 'This' => 'Is', 'a' => 'challenge', ] ] ]; function recursiveMapper(array|object &$level, callable $callback) { $new = []; foreach ($level as $k => $v) { $new[$k] = match (gettype($v)) { 'string' => $callback($v), 'array', 'object' => (__FUNCTION__)($v, $callback), default => $v }; } if (gettype($level) === 'object') { $new = (object) $new; } return $new; } var_export(recursiveMapper($array, 'strtolower'));

preferences:
31.29 ms | 404 KiB | 5 Q