我的php遇到了奇怪的行为。它在我的html中添加了一个情感段落,但我无法弄清楚为什么。
我正在遍历一个看起来像这样的json对象
{
"1495147646442": {
"description": "Wonderful!",
"fileNames": [
"1.jpg",
"2.jpg"
]
}
}
我的php看起来如下。
<?php
$json = file_get_contents('auction.json');
$json = json_decode($json);
foreach ($json as $obj)
{
echo "<div class='row'>";
echo "<p>" . $obj->description . "</p>";
for ($x = 0; $x < count($obj->fileNames); $x++)
{
echo "<img class='col-md-6' src=" . $obj->fileNames[$x] . ">";
}
echo "</div>";
}
?>
生成的html如下所示:
<div class='row'>
<p>Wonderful!</p>
<img class='col-md-6' src="1.jpg">
<img class='col-md-6' src="2.jpg">
</div>
<div class='row'>
<p></p>
</div>
然而,我希望得到
<div class='row'>
<p>Wonderful!</p>
<img class='col-md-6' src="1.jpg">
<img class='col-md-6' src="2.jpg">
</div>
答案 0 :(得分:5)
Just check $obj->description is not empty in your foreach loop.
<?php
$json = file_get_contents('auction.json');
$json = json_decode($json);
foreach ($json as $obj)
{
if(isset($obj->description) && $obj->description != ''){
echo "<div class='row'>";
echo "<p>" . $obj->description . "</p>";
for ($x = 0; $x < count($obj->fileNames); $x++)
{
echo "<img class='col-md-6' src=" . $obj->fileNames[$x] . ">";
}
echo "</div>";
}
}
?>
答案 1 :(得分:0)
您可以使用解码json_decode($json, true);
=&gt;的数组方式array way。或object way json_decode($json);
。
简单检查$obj
是否为对象就足够了。