2016-09-14 100 views
0

我可以伊斯利探索JSON例如回聲特殊值:如何從陣列/ JSON結構關鍵

foreach($json_a['somwhere'][1]['somwhere_deeper'] as $something){ 
    var_dump($something); 
} 

此代碼讓我打印這樣的事情:

C:\wamp64\www\dothejob.php:7: 
array (size=2) 
    'name' => string 'John' (length=17) 
    'value' => string '15' (length=4) 
C:\wamp64\www\dothejob.php:7: 
array (size=2) 
    'name' => string 'Joanna' (length=6) 
    'value' => string '23' (length=2) 
C:\wamp64\www\dothejob.php:7: 
array (size=2) 
    'name' => string 'John' (length=17) 
    'value' => string '55' (length=10) 
C:\wamp64\www\dothejob.php:7: 
array (size=2) 
    'name' => string 'Joanna' (length=11) 
    'value' => string '55' (length=5) 

所以我確定我在一個正確的地方,但現在的問題是如何只打印數組中的值,其中名稱是喬安娜?

我知道它應該很容易如果聲明,但我不知道這些鍵/值如何工作,它很容易的問題,但我是初學php ... :)。我正在尋求幫助,但還沒有找到解決方案。

不能使用$什麼[N],因爲他們不是在百達相同的「地方」,因此,只有正確的解決方案是這樣的:

我正在尋找這樣的事情:

if 'name' is 'Joanna': 
print value of 'value' 
+2

可能重複的[從PHP中的JSON數組獲取值](http://stackoverflow.com/questions/17995877/get-value-from-json-array-in-php) –

+0

和許多mooooooooore ... –

回答

1

您可以使用$something[n]因爲你有一個關聯數組:

foreach($json_a['somwhere'][1]['somwhere_deeper'] as $something){ 
    if ($something['name'] == 'Joanna') { 
     var_dump($something); 
    } 
} 

輸出應該是:

C:\wamp64\www\dothejob.php:7: 
array (size=2) 
    'name' => string 'Joanna' (length=6) 
    'value' => string '23' (length=2) 
C:\wamp64\www\dothejob.php:7: 
array (size=2) 
    'name' => string 'Joanna' (length=11) 
    'value' => string '55' (length=5) 

當然,如果你想var_dump的值只,使用var_dump($something['value'])

+0

但我想輸出看起來像 55只有 – degath

+0

然後使用'echo $ something ['value']',它會輸出'2355'。 – roberto06

+0

是的,謝謝你的隊友,你的太棒了!我會盡快接受答案:-) – degath

0

你需要更新上面的代碼變

foreach($json_a['somwhere'][1]['somwhere_deeper'] as $key => $value){ 
    echo $key." : ".$value 
} 

輸出的命名convension將會像 約翰:15 上帝是仁慈的:23

foreach(array as key => value) 
{ 
//key represent array key 
//value represent value of that array 
} 

讓我知道,在任何顧慮的情況下, 。