echo '<td width="11%" class="imagetd">';
if (empty($arrImageFile[$key])) {
echo ' ';
} else {
echo '<ul class="qandaul"><li>';
echo htmlspecialchars(is_array($arrImageFile[$key]) ? implode("\n", $arrImageFile[$key]) : $arrImageFile[$key]);
echo '</li></ul>';
}
echo '</td>';
在上面的代码中,我有一些图像名称,现在每个图像名称都由换行符分隔,但我遇到的问题是它没有为换行符中插入的每个图像文件名显示一个项目符号点。它只显示第一个图像名称的一个项目符号点,就是它。在上面的示例中,如何为每个图像名称插入项目符号点?
更新
CSS是否在下面生效:
ul, ul li { margin: 0; padding: 0; }
ul { margin-left: 1.3em; }
下面提到Juan的答案,我想确保它是正确的,因为它不起作用:
echo '<td width="11%" class="imagetd">';
if (is_array($arrImageFile[$key]) {
foreach($arrImageFile[$key] as $img) {
if (empty($arrImageFile[$key])) {
echo ' ';
} else {
echo '<ul class="qandaul"><li>';
echo '<li>' . htmlspecialchars($img) . '</li>'
}
}
echo '</li></ul>';
}
echo '</td>';
答案 0 :(得分:1)
您将所有图片文件放在<li>
内。为每个图片创建单独的<li>
echo '<ul class="qandaul>';
if (empty($arrImageFile[$key])) {
echo '<li> </li>';
} else {
if (is_array($arrImageFile[$key]) {
foreach($arrImageFile[$key] as $img) {
echo '<li>' . htmlspecialchars($img) . '</li>';
}
} else {
echo '<li>' . htmlspecialchars($arrImageFile[$key]) . '</li>';
}
}
echo '</ul>';
或者您可以使用其他人建议的数组内爆技巧。我倾向于认为这不太可读。
echo implode("</li>\n<li>", array_map(function($item){
return htmlspecialchars($item);
}, $arrImageFile[$key]));
答案 1 :(得分:0)
而不是implode("\n", $arrImageFile[$key])
,
使用implode("</li>\n<li>", $arrImageFile[$key])
,
关键是你需要为一张图片创建一个li
。
echo '<td width="11%" class="imagetd">';
if (empty($arrImageFile[$key])) {
echo ' ';
} else {
echo '<ul class="qandaul"><li>';
echo htmlspecialchars(is_array($arrImageFile[$key]) ? implode("</li>\n<li>", $arrImageFile[$key]) : $arrImageFile[$key]);
echo '</li></ul>';
}
echo '</td>';
答案 2 :(得分:0)
这是因为所有内容都包含在一个<li>
标记中。 echo '<ul class="qandaul"><li>';
将每个人放在自己的<li>
答案 3 :(得分:0)
html中的尖头列表标记是:
<ul>
<li>First</li>
<li>Second</li>
<li>Third</li>
</ul>
因此,您必须使用&#34;&lt; / li&gt;&lt; li&gt;&#34;或使用for循环(或foreach)。
答案 4 :(得分:-1)
项目符号取决于您的CSS样式,请检查CSS样式对ul和qandaul类的说法。