php foreach 循环多维数组有问题

标签 php arrays multidimensional-array foreach

我在获取多维数组中的值时遇到问题

Array
(
    [0] => Array
        (
            [name] => Brandow & Johnston, Inc.
            [lat] => 34.051405
            [lng] => -118.255576
        )

    [1] => Array
        (
            [name] => Industry Metrolink Train Station
            [lat] => 34.00848564346
            [lng] => -117.84509444967
        )

    [2] => Array
        (
            [name] => The Back Abbey
            [lat] => 34.095161
            [lng] => -117.720638
        )

    [3] => Array
        (
            [name] => Eureka! Burger Claremont
            [lat] => 34.094572563643
            [lng] => -117.72184828904
        )

)

假设我有一个上面这样的数组

我正在使用如下的 foreach 循环

foreach($_SESSION['array'] as $value){

    foreach($valueas $key_location=> $value_location){

        if($key_location = "name"){$fsq_name = $value_location;}
        $fsq_lat = $value_location["lat"];
        $fsq_lng = $value_location["lng"];



        echo "<i>".$fsq_lat."</i><br/>";

        }

    }

我尝试使用 if 语句,或使用 $value_location["lat"]; 但它没有生成正确的值。

如果我使用三个等号来执行if($key_location === "lng"){$fsq_lng = $value_location;},则会出现错误进行几次迭代,然后生成 lng 结果。如果我只是做一个等号并回显它,它也会给我name键。

我错过了什么吗?

谢谢

最佳答案

您实际上并不需要内部 foreach 循环。外部的就足够了,因为它迭代数组。内部数组可以通过外部 foreach 内的键访问。

foreach($_SESSION['array'] as $value){
  $fsq_name = $value["name"];
  $fsq_lat = $value["lat"];
  $fsq_lng = $value["lng"];

  echo "<i>".$fsq_lat."</i><br/>";

  // Actually none of the above assignments are necessary
  // you can just:
  echo "<i>".$value["lat"]."</i><br/>";
}

关于php foreach 循环多维数组有问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9815589/

相关文章:

php - 在 PHP 中使用 Composer 自动加载的命名空间

php - HTML/CSS - 移动设备在开始时缩放

php - 无法访问通过 PHP 中的 Post 方法发布的数组的值

android - 从 parse.com 检索数组并将值添加到本地数组 (Android)

c++ - 使用基于范围的for循环打印多维数组

php - 使用 preg_match 将字符串提取到 : & | characters 之间的数组中

php - mysql使用表的id生成动态url

C - 使用具有设定值的变量初始化数组

c# - 将字符串拆分为一组分组数组

javascript - 到达数组末尾后如何执行函数?