我在多维数组中获取值时遇到问题
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