2011-09-06 35 views
0

我有一個JSON字符串解析了一個PHP數組,看起來像這樣獲得的值:從一個數組

 
array(1) { 
    ["ResultSet"]=> 
    array(7) { 
    ["version"]=> 
    string(3) "1.0" 
    ["Error"]=> 
    int(0) 
    ["ErrorMessage"]=> 
    string(8) "No error" 
    ["Locale"]=> 
    string(5) "us_US" 
    ["Quality"]=> 
    int(99) 
    ["Found"]=> 
    int(1) 
    ["Results"]=> 
    array(1) { 
     [0]=> 
     array(29) { 
     ["quality"]=> 
     int(72) 
     ["latitude"]=> 
     string(9) "34.746479" 
     ["longitude"]=> 
     string(10) "-92.289589" 
     ["offsetlat"]=> 
     string(9) "34.746479" 
     ["offsetlon"]=> 
     string(10) "-92.289589" 
     ["radius"]=> 
     int(500) 
     ["name"]=> 
     string(20) "34.746479,-92.289589" 
     ["line1"]=> 
     string(13) "State Capitol" 
     ["line2"]=> 
     string(22) "Little Rock, AR 72201" 
     ["line3"]=> 
     string(0) "" 
     ["line4"]=> 
     string(13) "United States" 
     ["house"]=> 
     string(0) "" 
     ["street"]=> 
     string(13) "State Capitol" 
     ["xstreet"]=> 
     string(0) "" 
     ["unittype"]=> 
     string(0) "" 
     ["unit"]=> 
     string(0) "" 
     ["postal"]=> 
     string(5) "72201" 
     ["neighborhood"]=> 
     string(0) "" 
     ["city"]=> 
     string(11) "Little Rock" 
     ["county"]=> 
     string(14) "Pulaski County" 
     ["state"]=> 
     string(8) "Arkansas" 
     ["country"]=> 
     string(13) "United States" 
     ["countrycode"]=> 
     string(2) "US" 
     ["statecode"]=> 
     string(2) "AR" 
     ["countycode"]=> 
     string(0) "" 
     ["hash"]=> 
     string(0) "" 
     ["woeid"]=> 
     int(12789127) 
     ["woetype"]=> 
     int(11) 
     ["uzip"]=> 
     string(5) "72201" 
     } 
    } 
    } 
} 

,我試圖得到WOEID參數是這樣的值:

foreach ($data["ResultSet"] as $key => $val) 
{ 
    echo $val["woeid"]."<br />"; 
} 

但由於某種原因,它沒有得到價值。難道我做錯了什麼?

謝謝!

+1

我懷疑這就是你的JSON字符串的樣子。特別是因爲它根本不是一個字符串。 –

+0

試試$ data [「ResultSet」] [「woeid」] –

+0

看看這裏。我把它輸給了屏幕:http://www.comehike.com/outdoors/city.php?country_id=1&country_name=&state_id=5&state_name=Arkansas&city_id=2127&city_name=Little%20Rock – Genadinik

回答

2

你需要$data['ResultSet']['Results'],不$data['ResultSet']

0

第一個$key => $val將是version => 1.0。強1.0是不是一個陣列,並沒有一個woeid。

我不會嘗試解碼一個巨大的數據結構的單行表達式,但是您需要導航到實際出現所需數據的位置。

+0

是的,但在我的循環中,它輸出每一行陣列,並且由於某種原因,這個妓女仍然沒有輸出。 – Genadinik

+0

查看文檔的源視圖。然後你得到縮進。你想循環結果,而不是ResultSet。 – Quentin

0

複製JSON網址,並將其粘貼到JSONLint.com。它非常漂亮 - 打印JSON,使其更具可讀性。話雖如此,我注意到ResultSet不是一個數組。相反,它是一個具有各種屬性的對象,其中一個名爲Results,其中的數組。所以,你需要這樣做:

foreach($data["ResultSet"]["Results"] as $i => $result) { 
    echo $result["woeid"] . "<br>"; 
} 
0

$數據[ 「的ResultSet」]是一個對象,實際效果是在$數據[ 「的ResultSet」] [ 「結果」。所以使用:

foreach ($data["ResultSet"]["Results"] as $key => $val) 
{ 
    echo $val["woeid"]."<br />"; 
}