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; }
下面指的是胡安的回答,我想确保是正确的,因为它不起作用:
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>';
您将所有图像文件放入<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]));
而不是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>';
这是因为所有内容都包装在一个<li>
标签中。 echo '<ul class="qandaul"><li>';
把每个都放在自己的<li>
html "来内爆,或者使用for循环(或foreach)。
中的尖锐列表标记是:
<ul>
<li>First</li>
<li>Second</li>
<li>Third</li>
</ul>
所以你必须用"
项目符号点取决于您的 CSS 样式,请检查 CSS 样式对 ul 和类 qandaul 的说法。