<?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