2013-12-17 4 views
0

У меня возникла проблема получить значение из данных json внутри массива, когда данные больше одного.Получение значения из данных Json Внутри массива

Когда мои данные только один, как это:

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

Я могу только получить доступ высоты Ана по подстроке-ки его первым и расшифровывает его, как это:

$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; 
    } 
} 
?> 
Смежные вопросы