我已经搜索了答案,但是没有解决我的问题。
怎么输出这样的?
提前感谢
Title: First Title
标签:标签-1,标签-2,标签-3
Title: Second Title
标签:tag-b-1, tag-b-2, tag-b-3
Title: Third Title
标签:tag-c-1, tag-c-2, tag-c-3
file.json
{
"videos": [
{
"title": "First Title",
"tags": [
{
"tag_name": "tag-a-1"
},
{
"tag_name": "tag-a-2"
},
{
"tag_name": "tag-a-3"
}
],
"publish_date": "2016-09-12 16:40:14"
},
{
"title": "Second Title",
"tags": [
{
"tag_name": "tag-b-1"
},
{
"tag_name": "tag-b-2"
},
{
"tag_name": "tag-b-3"
}
],
"publish_date": "2016-09-12 16:40:14"
},
{
"title": "Third Title",
"tags": [
{
"tag_name": "tag-c-1"
},
{
"tag_name": "tag-c-2"
},
{
"tag_name": "tag-c-3"
}
],
"publish_date": "2016-09-12 16:40:14"
}
]
}
output.php
<?php
ini_set('display_errors', 1);
$html = "file.json";
$html = file_get_contents($html);
$videos = json_decode($html, true);
foreach ($videos['videos'] as $video) {
$title = $video['title'];
foreach ($video['tags'] as $tags) {
$tags = $tags['tag_name'];
echo 'Title: ' . $title . '<br />';
echo 'Tags: ' . $tags . ', <br /><br />';
}
}
您的第二次迭代似乎是错误的。你应该在第一个循环中打印title/tags。
foreach ($videos['videos'] as $video) {
$title = $video['title'];
$tags = array(); // reset it every new item to avoid race-condition on empty one.
foreach ($video['tags'] as $tags) {
$tags[] = $tags['tag_name'];
// ^ also add new elements here
}
echo 'Title: ' . $title . '<br />';
echo 'Tags: ' . implode(',', $tags) . '<br /><br />';
// ^ also join your tags
}