我的问题:
仅当 json 对象包含图像时,我将如何回显幻灯片?
我的问题:
我不确定应该如何处理 json 对象的 for 循环以仅在幻灯片包含图像时才回显幻灯片。
客观的:
我希望仅当 json 对象中有图像时才能回显 div,然后在图像周围回显链接,以便我可以链接到故事。
额外的:
没有图像时,我怎么不能在“#slides”中回显幻灯片 div?
如果它包含图像而不破坏 foreach 循环,PHP 中有什么东西可以让我回显幻灯片吗?
还是我将不得不打破 foreach 循环,仅存储包含图像的幻灯片的信息并重新循环它们?如果是这样,最好的方法是什么?
我迷路了,因为如果我为 $key=="img" 做一个 if 语句,它只会回显图像部分,不知道我应该如何处理它。
代码:
新闻.JSON
{
"1": {
"id": "1",
"img":"./images/newspost/07-05-12.jpg",
"link":"http://www.cnn.com/2012/07/05/world/europe/france-air-crash-report/index.html",
"title": "Example",
"date":"02/08/12",
"content": "Example"
},
"2": {
"id": "2",
"img":"",
"link":"http://online.wsj.com/article/SB10001424052702304141204577508500189367804.html?mod=googlenews_wsj",
"title": "Example",
"date":"09/03/10",
"content": "Example"
}
}
主页.PHP
/* Error Report on */
error_reporting(E_ALL);
/* Open Json file */
$json = file_get_contents("./content/news.json");
/* Setup iterator to go through file */
$jsonIterator = new RecursiveIteratorIterator(new RecursiveArrayIterator(json_decode($json, TRUE)),RecursiveIteratorIterator::SELF_FIRST);
/* Create SLIDES for SLIDESHOW */
echo "<div id='slides'>";
在这一点上,如果不存在图像,我不想回显任何东西。
foreach($jsonIterator as $key => $val)
{
if(is_array($val))
{
echo "<div>";
}
if($key=="link")
{
echo "<a href='$val'>";
}
if($key=="img"&&$val!="")
{
echo "<img alt='' src='$val'></img>";
}
if(!is_array($val)&&$key=="content")
{
echo "</a>";
echo "</div>";
}
}
结束循环/仅当图像存在时才需要显示的内容。
echo "</div>";
/* End SLIDES creation */