这是我的带有json格式字符串的php代码:

<?php

$string='{"items":  [
    {
    "address":"W 7th Ave"
    },
    {
    "address":"W 8th St"
    }
    ]}';

$json = json_decode($string, true);

    foreach ($json as $key => $value){
        echo "$key: $value\n";
    };

?>

我想学习如何将json字符串解析/输出为可以在html中显示或放入数据库的内容..但是我被困在一个很简单的问题上,但是我花了大部分时间试图弄清楚。

我想了解的是为什么以上代码的结果为我提供以下结果:
"items: Array"
而不是我想要/期望得到的:
"items: W 7th Ave"
"items: W 8th St"

我想念什么?数组中的“项目”下的“地址”不是下一个“级别”吗?

最佳答案

$string = file_get_contents('./string.json');
$json = json_decode($string);

如果您想拥有items: <address>:
foreach ($json['items'] as $address)
{
    echo "items:". $address['address'] ."\n";
};

无论如何,如果您不确定数组的构建方式,则可以通过以下方式进行打印:
print_r($json);

它将打印:
Array
(
    [items] => Array
        (
            [0] => Array
                (
                    [address] => W 7th Ave
                )

            [1] => Array
                (
                    [address] => W 8th St
                )
        )
)

现在,您发现$json仅包含两个数组的数组(items),然后,如果对其进行循环,您将获得在示例中打印的该数组。
如上所述,您需要通过循环items数组中的元素并打印其address元素来更进一步。

这是完整的脚本:http://pastie.org/2275879

10-08 14:08
查看更多