2013-12-17 29 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; 
    } 
} 
?>