循环遍历json-data

时间:2018-05-29 09:54:44

标签: php json loops foreach

我有一个用这个结构生成JSON数据的脚本。我试图循环这是一个PHP列表,但现在正确。

这是JSON的结构:

{
  "msg": [
    "msg text 1",
    "msg text 2",
    "msg text 3",
    "msg text 4",
    "msg text 5",
    "msg text 6"
  ]
}

我的PHP代码如下所示:

$json = file_get_contents('my_json_file');
$results = json_decode($json);
$array = (array)$results;

foreach ($array as $key => $item){
        echo "Key: ".$key." Item: ".$item;
}

此代码的输出为:

Key: msg Item: Array

任何知道我必须编辑什么才能做到这一点的人?

2 个答案:

答案 0 :(得分:0)

您必须在array['msg']上执行foreach以获取所有msg项目。否则你将遍历主数组的所有属性(在这种情况下只有msg

$json = file_get_contents('my_json_file');
$results = json_decode($json);
$array = (array)$results;

foreach ($array['msg'] as $item){
        echo "Key: msg Item: ".$item;
}

输出将是:

Key: msg Item: msg text 1 
Key: msg Item: msg text 2
...

如果您仍想要遍历主阵列并想要打印msg的内容,则必须使用print_r来打印数组的内容

$json = file_get_contents('my_json_file');
$results = json_decode($json);
$array = (array)$results;

foreach ($array as $key => $item){
    echo "Key: ".$key." Item: ".print_r($item, true);
}

输出将是:

Key: msg Item: array [
    "msg text 1",
    "msg text 2",
    ...
]

答案 1 :(得分:0)

使用此示例代码。

    $json = '{
        "msg": [
        "msg text 1",
        "msg text 2",
        "msg text 3",
        "msg text 4",
        "msg text 5",
        "msg text 6"
    ]}';

    $results = json_decode($json);
    $array = $results->msg;
    foreach ($array as $key => $item){
        echo "Key: ".$key." Item: ".$item;
    }