PHP-对子数组应用操作,而不考虑父数组
在多维数组中,我试图选择具有某个键的所有子数组,无论它们的父数组是什么。我知道下面的语法不起作用,但希望它能帮助说明我要实现的目标:PHP-对子数组应用操作,而不考虑父数组,php,arrays,multidimensional-array,parent-child,descendant,Php,Arrays,Multidimensional Array,Parent Child,Descendant,在多维数组中,我试图选择具有某个键的所有子数组,无论它们的父数组是什么。我知道下面的语法不起作用,但希望它能帮助说明我要实现的目标: <?php foreach ($array[*][*]['descendant'] as $descendent) { // do stuff } ?> 类似地,我需要确定同级数组是否不包含此数组键。类似这样的东西(同样,我知道语法是非常错误的): 如果始终存在三维数组,则可以使用嵌套循环: foreach($array as
<?php
foreach ($array[*][*]['descendant'] as $descendent) {
// do stuff
}
?>
类似地,我需要确定同级数组是否不包含此数组键。类似这样的东西(同样,我知道语法是非常错误的):
如果始终存在三维数组,则可以使用嵌套循环:
foreach($array as $lv1) {
foreach($lv1 as $lv2) {
foreach($lv2['descendant'] as $descendent) {
// do stuff
}
}
}
如果你想支持无限数量的维度,你可以使用这个丑陋的代码
function drill($arr) {
if (isset($arr) && is_array($arr)) {
foreach($arr as $key => $value) {
if ($key == 'descendant') {
foreach($value as $descendent) {
// do stuff here
}
} else {
drill($value);
}
}
}
}
drill($array);
你看过吗?它只是三维数组还是你有未定义的维度(可以是任意数量的维度)?
function drill($arr) {
if (isset($arr) && is_array($arr)) {
foreach($arr as $key => $value) {
if ($key == 'descendant') {
foreach($value as $descendent) {
// do stuff here
}
} else {
drill($value);
}
}
}
}
drill($array);