2012-03-22 48 views
2

我有讓我多維數組值PHP 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;}three equal的跡象,它會給我幾個迭代的錯誤,然後產生lng結果。如果我只是做one equal符號並將其回顯出來,它也會給我name密鑰。

我錯過了什麼嗎?

感謝

+0

首先,'的foreach($ valueas'似乎缺少了空間。其次,你知道,如果'($ key_location =名稱)'設置變量'$ key_location'爲' 「名」 '然後評估爲真?使用'=='檢查等號或'==='來檢查身份(類似於平等但更強) – octern 2012-03-22 02:28:29

回答

6

你實際上並不需要內部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/>"; 
} 
+0

神話般! – hellomello 2012-03-22 02:28:33

0

也許重構了一下?

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