在Laravel应用程序上工作,我在其中使用了API中的一些数据。我将响应作为JSON对象获取并转换为数组。它表现为复杂的多维数组 (嵌套数组)。我试图使用嵌套的foreach遍历它,以便到达每个项目的ID,但是我一直失败。.
响应存储在名为usmDet的变量中
数组响应
array:1 [▼
0 => array:1 [▼
0 => array:3 [▼
"id" => "74696"
"agents" => array:13 [▶]
"policies" => array:481 [▶]
]
1 => array:3 [▼
"id" => "1525"
"agents" => array:8 [▶]
"policies" => array:357 [▶]
]
]
1 => array:1 [▼
0 => array:3 [▼
"id" => "73401"
"agents" => array:1 [ …1]
"policies" => array:8 [ …8]
]
1 => array:3 [▼
"id" => "210"
"agents" => array:13 [ …13]
"policies" => array:773 [ …773]
]
]
]
我的嵌套foreach
foreach($usmDet as $key => $value){
if(is_array($value)){
foreach($value as $key => $value){
echo $key." ".$value."<br>";
}
}
echo "<br>";
}
答案 0 :(得分:2)
id是数组的一部分,您可以像$value['id']
在第二个foreach中,为了避免混淆,您应该为键和值选择一个不同的名称。
像这样尝试:
foreach($usmDet as $key => $value){
if(is_array($value)){
foreach($value as $k => $v){
echo $v['id'] . "<br>";
}
}
}
结果:
74696
1525
73401
210
要获取多个嵌套数组时键“ id”的所有值,可以使用array_walk_recursive
$ids = [];
array_walk_recursive($usmDet, function($value, $key) use (&$ids){
if ($key === "id") {
$ids[] = $value;
}
});
print_r($ids);