我有一个用这个结构生成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
任何知道我必须编辑什么才能做到这一点的人?
答案 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;
}