我正在创建一个路由应用程序并将结果作为 json 数组获取。将其转换为 php 数组后,我正确获得了整个距离和整个持续时间。现在我也需要关键“腿”中的每个值的距离和持续时间,但我为获取数据所做的一切都不起作用。数组的 json 输出如下所示:array ( 'routes' => array ( 0 => array ( 'legs' => array ( 0 => array ( 'summary' => '', 'weight' => 3741.9, 'duration' => 2912.3, // This value is what i want access 'steps' => array ( ), 'distance' => 21603.1, // This value is what i want access ), 1 => array ( 'summary' => '', 'weight' => 3642.1, 'duration' => 2777.4, // This value is what i want access 'steps' => array ( ), 'distance' => 21611.8, // This value is what i want access ), ), 'weight_name' => 'routability', 'weight' => 7384, 'duration' => 5689.700000000001, // This value i can acesss 'distance' => 43214.899999999994, // This value i can acesss too ), ), 'waypoints' => array ( 0 => array ( 'hint' => '', 'distance' => 16.78277948979663, // This value is what i want access 'name' => 'Weg', 'location' => array ( 0 => 11.4623, 1 => 50.7126, ), ), 1 => array ( 'hint' => '', 'distance' => 16.62835508134535, 'name' => 'Weg', 'location' => array ( 0 => 12.6069, 1 => 51.5398, ), ), 2 => array ( 'hint' => '', 'distance' => 16.78277948979663, 'name' => 'Weg', 'location' => array ( 0 => 12.343, 1 => 51.576, ), ), ), 'code' => 'Ok',)我通过以下代码获得整个距离(43214.8)和整个持续时间(5689.7):foreach($res2['routes'] as $item) { $distances = array_push_assoc($distances, $item['distance'], $item['duration']);}为了获得距离和持续时间,我执行了以下操作:foreach($res2['routes']['legs'] as $item) { $durations = array_push_assoc($durations , "DUR", $item['duration']);}如何从“腿”获得距离和持续时间?为什么不工作 $res2['routes']['legs']?
1 回答
繁星点点滴滴
TA贡献1803条经验 获得超3个赞
请注意“legs”数组存在于“routes”数组的索引 0 中,因此循环它需要使用$res2['routes'][0]['legs'].
此外,请注意,使用array_push_assoc具有相同硬编码密钥(如您的示例中的“DUR”)的 in 循环每次都会覆盖该密钥,因此您的数据会丢失 - 您最好将其更改为:
foreach($res2['routes'][0]['legs'] as $item) {
$durations[] = $item['duration'];
}
- 1 回答
- 0 关注
- 145 浏览
添加回答
举报
0/150
提交
取消