[英]How can I get the child key of a key in a multidimensional array?
array(
'World'=>array(
'Asia'=>array(
'Japan'=>array(
'City'=>'Tokyo'
)
)
)
);
在我的数组中,我正在寻找一个键:
foreach ($array as $key => $item) {
if(is_array($item)){
if (stripos($key, "Japan") !== false){
echo $key;
}
}
}
结果是Japan
。
对于每个键,我想检查子键是否为“城市”。 所以我做了以下事情:
foreach ($array as $key => $item) {
if(is_array($item)){
if (stripos($key, "Japan") !== false){
echo $key;
foreach ($key as $k => $i) {
if (stripos($k, "City") !== false){
echo "true";
} else {
echo "false";
}
}
}
}
我希望结果Japan
true
或至少结果Japan
false
但结果仍然只是Japan
我不明白。
在您的第二个 foreach 中,您使用单个元素( $key
),而您应该使用一组元素( $array[$key]
,考虑到它是一个多维数组)。
foreach ($array as $key => $item) {
if(is_array($item)){
if (stripos($key, "Japan") !== false){
echo $key;
foreach ($array[$key] as $k => $i) {
if (stripos($k, "City") !== false){
echo "true";
} else {
echo "false";
}
}
}
}
我会用递归算法来解决这个问题:
function find_array_children_key($array, $children_key, $parent_key=''){
$returning_value = false;
if(is_array($array))
{
foreach($array as $key=>$value)
{
if($key===$children_key)
$returning_value = $parent_key;
else
$returning_value = find_array_children_key($array,$children_key,$key);
if($returning_value!==false)
break;
}
}
return $returning_value;
}
例如,在您的情况下,您会调用find_array_children_key($array,'City')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.