HY,
我有一个带有子数组的多维数组,如下所示:
[21] => Array
(
[80] =>
[83] =>
[A4] => Array
(
[80] =>
)
[85] =>
[A6] => Array
(
[80] =>
)
[87] =>
[88] =>
[A9] => Array
(
[A0] => Array
(
[80] =>
)
)
[8B] =>
[AC] => Array
(
[30] => Array
(
[81] =>
[82] =>
[83] =>
[84] =>
[85] =>
[86] =>
[88] =>
)
)
[8D] =>
[8E] =>
[8F] =>
[91] =>
[92] =>
[93] =>
[94] =>
[9B] =>
[96] =>
[97] =>
[9D] =>
)
我想创建一个函数来传递一个级别来检查array_keys_exist
如果级别为0
,则应array_keys_exist($array['21']);
如果级别为1
,那么应该array_keys_exist($array['21'][])
,但问题是我无法使用$array[21][]
并且只关注80,80,A0 and 30
。
这可能吗?
谢谢
答案 0 :(得分:0)
function array_key_exists_recursive($key, $array, $levelsToCheck = 0) {
if (array_key_exists($key, $array) {
return true;
}
if($levelsToCheck > 0) {
foreach($array as $entry) {
if(is_array($entry) &&
array_key_exists_recursive(
$key,
$entry,
$levelsToCheck - 1
)
) {
return true;
}
}
}
return false;
}
或者,如果您只想检查给定深度的所有数组:
function array_key_exists_at_depth($key, $array, $depth = 0) {
if ($depth <= 0) {
return array_key_exists($key, $array);
}
foreach($array as $entry) {
if(is_array($entry) &&
array_key_exists_at_depth (
$key,
$entry,
$depth - 1
)
) {
return true;
}
}
return false;
}