array_keys()
函数用于返回数组中所有的键。但是,这个函数只能处理一维数组。要处理多维数组,您可以使用递归方法。下面是一个示例:
function array_keys_multi(array $input, string $parentKey = '') {
$keys = [];
foreach ($input as $key => $value) {
$currentKey = $parentKey ? $parentKey . '.' . $key : $key;
if (is_array($value)) {
$keys = array_merge($keys, array_keys_multi($value, $currentKey));
} else {
$keys[] = $currentKey;
}
}
return $keys;
}
// 示例多维数组
$multiArray = [
'a' => 1,
'b' => [
'c' => 2,
'd' => [
'e' => 3
]
],
'f' => 4
];
// 获取多维数组的所有键
$keys = array_keys_multi($multiArray);
// 输出结果
print_r($keys);
上述代码会输出以下结果:
Array
(
[0] => a
[1] => b.c
[2] => b.d.e
[3] => f
)
在这个示例中,我们定义了一个名为 array_keys_multi()
的函数,该函数接受一个多维数组作为输入。我们使用递归方法遍历数组的每个元素,并将当前键与父键连接起来。如果遇到一个子数组,我们将递归调用 array_keys_multi()
函数,并将结果合并到 $keys
数组中。最后,返回包含所有键的数组。