2013-12-17 27 views
0

我有一個問題,當數據是多個數據時從json數據中獲取值。從Json數據內部數組獲取值

當我的數據只有一個這樣的:

$mydata='[{"firstName":"Ana","height":5.3}]'; 

我只能通過串-ING首先它和解碼它,這樣的訪問安娜的高度:

$mydata= substr($mydata, 1, -1); 

$obj = json_decode($mydata); 
print $obj->{'height'}; 

問題是什麼時候數據是這樣的:

$mydata='[{"firstName":"Ana","height":5.3},{"firstName":"Taylor","height":5.11}]'; 

我怎樣才能得到安娜的身高?

print $obj->{0}->{'height'}; //doesn't work. 

請幫忙。先謝謝你。

回答

2

使用json_decode

$b_arr=json_decode($mydata,true); 
$b_arr[0]['height'];//0 is index for array 
1

您可以json_decode轉換,並通過您的數組進行迭代,讓您的具體數據:

<?php 
$mydata='[{"firstName":"Ana","height":5.3},{"firstName":"George","height":7.3}]'; 
$json = json_decode($mydata, true); 
foreach($json as $key => $value) { 
    if($value['firstName'] == 'Ana') { 
     echo $value['height']; 
     break; 
    } 
} 
?>