2013-12-12 4 views
0

У меня есть JSON как это:Как разобрать второй уровень JSon PHP

[{"a":"1", "b":"2"},{"a":"4", "b":"5"},{"a":"15", "b":"2"}] 

Я хочу, чтобы в PHP каждую строку для обновления моей базы данных. Я не знаю, сколько стоит json второго уровня. Иногда будет 1, иногда 2, а иногда и больше.

Я думал, я мог читать это делать что-то вроде этого:

$json = file_get_contents('php://input'); 
$json_post = json_decode($json, true); 
$i = 0; 

while(isset($json_post[$i])){ 
//Bla bla 
$i++; 
} 

Я много раз использовал JSON файл в PHP, но всегда, только один уровень. Это мой первый раз с более чем одним. Но я не могу. Я знаю, потому что я проверил, что в $ json у меня есть полный json-файл.

ответ

4

Вы должны ссылаться на подраздел в массиве:

$json = file_get_contents('php://input'); 
$json_post = json_decode($json, true); 
$i = 0; 

while(isset($json_post[$i])){ 
    echo $json_post[$i]["a"]; 
    // or 
    echo $json_post[$i][0]; 
    $i++; 
} 

Более документы можно найти здесь: http://php.net/manual/en/language.types.array.php

И аналогичный вопрос здесь: PHP reference specific key and value within multidimensional array

+0

Это было. Благодарю. Я знаю, что это должно быть что-то глупое, но я не мог понять. – Biribu

1

я бы использовать Еогеасп:

foreach($json_post as $key => $value) { 
    echo $value; 
} 
1
$j = '[{"a":"1", "b":"2"},{"a":"4", "b":"5"},{"a":"15", "b":"2"}]'; 

$decoded = json_decode($j, true); 
//var_dump($decoded); 


foreach ($decoded as $key => $post) { 
    $valueOfA = $post['a']; 
    $valueOfB = $post['b']; 
} 
Смежные вопросы