php-json解码问题


php json decode issue

$data = json_decode($json,true);
echo $json;

当我使用json_decode时,我会返回一个json树,如下所示:

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

那么,我如何使用foreach来获取所有的名称值呢?

像这样:

<?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]是一个子数组,它具有您想要的名称

foreach ($data[1] as $name_value) {
    // do something with $name_value
}

如果它总是相同的结构,您可以在$data[1]上循环。

但它看起来像是某种键前缀结构。然后为了可靠性,我会使用:

$key = array_search("name", $data);
if ($key !== FALSE)
foreach ($data[$key + 1] as $name) {
    print $name;
}
$data变量现在包含一个2维数组。如果你想得到所有名字的数组,你说
$names=$data['name'];