3v4l.org

run code in 300+ PHP versions simultaneously
<?php $array = [ 'a' => [ 'a' => [ 'a' => null, 'b' => null ], 'b' => [ 'a' => null, 'b' => null ] ], 'b' => [ 'a' => [ 'a' => null, 'b' => null ], 'b' => [ 'a' => null, 'b' => null ] ] ]; function getKeyPaths(array $array, string $prefix = ''): string { return implode( ',', array_reduce( array_keys($array), fn($carry, $k) => $carry + [$k => is_array($array[$k]) ? getKeyPaths($array[$k], "$prefix$k") : "$prefix$k"], [] ) ); } var_export(getKeyPaths($array));
Output for 8.1.0 - 8.1.28, 8.2.0 - 8.2.19, 8.3.0 - 8.3.7
'aaa,aab,aba,abb,baa,bab,bba,bbb'

preferences:
51.59 ms | 402 KiB | 62 Q