2012-03-21 124 views
1

我想使用的foreach(我認爲這是最好的辦法,性能明智的,因爲知道的)Foreach循環數組和stdClass對象解決,獲取值

[businesses] => Array 
     (
      [0] => stdClass Object 
       (
        [rating] => 4 
        [location] => stdClass Object 
         (
          [city] => Claremont 
          [display_address] => Array 
           (
            [0] => 580 W First St 
            [1] => Claremont, CA 91711 
           ) 

          [geo_accuracy] => 8 
          [postal_code] => 91711 
          [country_code] => US 
          [address] => Array 
           (
            [0] => 580 W First St 
           ) 

          [coordinate] => stdClass Object 
           (
            [latitude] => 34.094112 
            [longitude] => -117.7250746 
           ) 
         ) 

       ) 
) 

我去一定值試圖獲得經度和緯度。但請記住,我將不僅僅是[0] => stdClass Object。會有多個號碼。我知道我可以做一些事情,如$ response-> business [0] - > location或某種排序,但只能得到0鍵,我需要能夠通過foreach鍵來獲得它。

有人可以幫我做一個foreach嗎?

比如我這樣做是那麼遠,

foreach($response->businesses->location as $llk=>$coordinate){ 

    if($llk === "coordinate"){ 

     $selected_lat = $coordinate->latitude; 
     $selected_lng = $coordinate->longitude; 
    } 
} 

到目前爲止它給我的錯誤。

謝謝!

+0

[stdClass object and foreach loops](http://stackoverflow.com/questions/950827/stdclass-object-and-foreach-loops) – Cullub 2016-02-08 21:44:18

回答

2

下可能你正在尋找的地方:

foreach($response->businesses as $business) { 
    if(!empty($business->location->coordinate)) { 
     $coord = $business->location->coordinate; 
     $selected_lat = $coord->latitude; 
     $selected_long = $coord->longitude; 
    } 
} 
+0

不應該是$ business-> location-> coordinate->緯度,因爲座標是位置對象的成員?編輯 – 2012-03-21 03:30:39

+0

,感謝user3068484 – 2012-03-21 03:31:02

1

試試這個:

foreach ($response->businesses as $business) { 
    $selected_lat = $business->location->coordinate->latitude; 
    $selected_lng = $business->location->coordinate->longitude; 
} 
0

你可能不需要這個foreach循環,只需使用簡單的數組迭代通過頂級stdClass對象,然後使用解引用來獲取每個經度/緯度對。

for($i = 0; $i < count($response->businesses); $i++) 
{ 
    $coords = $response->businesses[$i]->location->coordinate; 
    $long = $coords->longitude; 
    $lat = $coords->latitude; 
} 

這應該工作盡我所知。