phpforeach循环多维数组出现问题


php foreach loop multidimensional array having issues

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

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"];,但它没有产生正确的值。

如果我用three equal符号做if($key_location === "lng"){$fsq_lng = $value_location;},它会给我一些迭代的错误,然后产生lng结果。如果我只做one equal符号并将其回声出来,它也会给我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/>";
}

也许可以重构一点?

foreach($_SESSION['array'] as $value)
{
    // pull the lat and lng values from the value
    $fsq_lat = $value["lat"];
    $fsq_lng = $value["lng"];
    $fsq_name = $value["name"];
echo "<i>".$fsq_lat."</i><br/>";

}// foreach