我不会说英语,但我会尝试得到它。
我的问题出在foreach ($json->mods->$k as $name) {
,因为我收到重复<li>
:
以下是示例:
<ul id="1">
<LI><B>BR:</B>
<LI><B>BR:</B>
<LI><B>BR:</B> Asterixmod, Explanado, Modquack</li>
<br>
<LI><B>DE:</B> Sweetphoenix</li>
<br>
<LI><B>E2:</B>
<LI><B>E2:</B> Irishcow, Welshnutter</li>
</ul>
CODE:
<?php
echo '<ul id="1">';
$link = '.json';
$f = file_get_contents($link);
$json = json_decode($f);
if (empty($json)) {
echo '<li id="ere"><B>ERROR</B></li>';
} else {
foreach ($json as $key => $val) {
foreach ($val as $k => $v) {
foreach ($json->mods->$k as $name) {
echo strtoupper('<li><b>' . $k . ':</b> ');
}
echo(implode(', ', $json->mods->$k));
echo '</li><br>';
}
}
echo '</ul>';
}
希望有人帮助我,ty。
答案 0 :(得分:0)
您收到此错误的原因是因为您foreach ($json->mods->$k as $name)
内部正在打开<li>
,但在此循环之后您才会关闭它。这意味着,例如。 BR
将有3个开始标记和一个结束标记。
此外,只需1个循环即可获得所需的输出:
foreach ($json->mods as $key => $val) {
echo '<li><b>' . strtoupper($key) . ':</b> ';
echo implode(', ', $val);
echo '</li><br>';
}
或者你甚至可以使echo
一行:
foreach ($json->mods as $key => $val) {
echo '<li><b>' . strtoupper($key) . ':</b> ' . implode(', ', $val) . '</li><br>';
}
希望这有帮助!