使用php foreach从嵌套数组中选择特定元素
假设我有这个嵌套数组:使用php foreach从嵌套数组中选择特定元素,php,arrays,foreach,Php,Arrays,Foreach,假设我有这个嵌套数组: Array ( [0] => page [1] => section [2] => side [3] => Array ( [0] => Array ( [0] => url1 [1] => url2
Array
(
[0] => page
[1] => section
[2] => side
[3] => Array
(
[0] => Array
(
[0] => url1
[1] => url2
[2] => url3
)
[1] => Array
(
[0] => url4
[1] => url5
[2] => url6
)
[2] => Array
(
[0] => url7
[1] => url8
[2] => url9
)
)
)
我想让每个php从索引为[1]的每个数组元素中获取
foreach($arr as $key => $value){
echo $key." : ".$value."\n";
foreach($value as $key => $value){
echo " ". $key." : ".$value."\n";
foreach($value as $key => $value){
echo " ". $key." : ".$value."\n";
}
}
}
这是我的输出:
0 : page
1 : section
2 : side
3 : Array
0 : Array
0 : url1
1 : url2
2 : url3
1 : Array
0 : url4
1 : url5
2 : url6
2 : Array
0 : url7
1 : url8
2 : url9
但我想同时从每个数组中选择特定元素,如下所示:
1 : url2
1 : url5
1 : url8
有人能帮忙吗?您可以在单独的数组中收集条目,然后对其进行迭代。根据您的代码,如下所示:
<?php
$entriesWithOne = [];
foreach($arr as $key => $value){
echo $key." : ".$value."\n";
foreach($value as $key => $value){
echo " ". $key." : ".$value."\n";
foreach($value as $key => $value){
echo " ". $key." : ".$value."\n";
if ($key == 1) {
$entriesWithOne[] = $value;
}
}
}
}
foreach($entriesWithOne as $url) {
echo '1 : ' . $url . "\n";
}
请注意,在本例中,我只进行了检查并将其添加到最内部的循环中,因为它满足您的要求。但是,如果您也希望从其他循环中收集数据,则必须在那里执行类似的操作