PHP JSON декодирования проблема - PullRequest
0 голосов
/ 30 мая 2011
$data = json_decode($json,true);
echo $json;

Когда я использую json_decode, я получаю дерево JSON, подобное этому:

[
    "name",
    [
        "jason",
        "carl",
        "simpson",
        "crew",
        "marx"
    ]
]

Итак, как я могу использовать foreach, чтобы получить все значения имени?

Ответы [ 4 ]

1 голос
/ 30 мая 2011

Примерно так:

<?php
$json = <<<JSON
[
    "name",
    [
        "jason",
        "carl",
        "simpson",
        "crew",
        "marx"
    ]
]
JSON;

$data = json_decode($json);

foreach($data[1] as $name) {
  echo "$name\n";
}
?>

Вывод:

$ php test.php
jason
carl
simpson
crew
marx

РЕДАКТИРОВАТЬ

В основном данные json представляют собой массив, где $data[0] - это имя значения, а $data[1] - это подмассив с именами, которые вы хотите

0 голосов
/ 30 мая 2011

Если бы это всегда была одна и та же структура, вы могли бы просто зациклить $data[1].

Но похоже, что это какая-то структура префикса ключа.Тогда для надежности я бы использовал:

$key = array_search("name", $data);

if ($key !== FALSE)
foreach ($data[$key + 1] as $name) {
    print $name;
}
0 голосов
/ 30 мая 2011
foreach ($data[1] as $name_value) {
    // do something with $name_value
}
0 голосов
/ 30 мая 2011

переменная $ data теперь содержит 2-мерный массив.Если вы хотите получить массив всех имен, вы говорите

$names=$data['name'];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...