php json_decode如何输出数组

gen*_*oki 12 php json

这是我的PHP代码与json格式的字符串:

<?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";
    };

?>
Run Code Online (Sandbox Code Playgroud)

我想学习如何解析/输出json字符串到我可以在html中显示或放入数据库的东西..但是我被困在一些非常简单的东西但我已经花了大部分时间试图弄明白.

我想了解的是为什么上面代码的结果给出了以下结果:

"items: Array"

而不是我想要/期望得到的:

"items: W 7th Ave"
"items: W 8th St"
Run Code Online (Sandbox Code Playgroud)

我错过了什么?不是"地址"数组中"Item"的下一个"级别"吗?

Dal*_*len 15

$string = file_get_contents('./string.json');
$json = json_decode($string);
Run Code Online (Sandbox Code Playgroud)

如果你想拥有items: <address>:

foreach ($json['items'] as $address)
{
    echo "items:". $address['address'] ."\n";
};
Run Code Online (Sandbox Code Playgroud)

无论如何,如果您不确定如何构建阵列,您可以通过以下方式打印它:

print_r($json);
Run Code Online (Sandbox Code Playgroud)

将打印:

Array
(
    [items] => Array
        (
            [0] => Array
                (
                    [address] => W 7th Ave
                )

            [1] => Array
                (
                    [address] => W 8th St
                )
        )
)
Run Code Online (Sandbox Code Playgroud)

现在你发现它只$json包含items两个数组的array(),然后,如果你循环它,你将获得在你的例子中打印的数组.如上所述,您需要通过循环items数组中的元素并打印其address元素来更深入一步.

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