0
echo '<td width="11%" class="imagetd">';
if (empty($arrImageFile[$key])) {
    echo '&nbsp;';
} else {
    echo '<ul class="qandaul"><li>';
    echo htmlspecialchars(is_array($arrImageFile[$key]) ? implode("\n", $arrImageFile[$key]) : $arrImageFile[$key]);
    echo '</li></ul>';
}
echo '</td>';

上記のコードでは、画像名がたくさんあり、各画像名は改行で区切られていますが、問題は、改行に挿入された各画像ファイル名の箇条書きが表示されないことです。最初の画像名の箇条書きが1つだけ表示され、それだけです。上記の例では、画像名ごとに箇条書きを挿入するにはどうすればよいですか?

アップデート

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 '&nbsp;';
        } else {
            echo '<ul class="qandaul"><li>';
            echo '<li>' . htmlspecialchars($img) . '</li>'
        }
    }          
    echo '</li></ul>';
}
echo '</td>';
4

5 に答える 5

1

すべての画像ファイルをの中に入れています<li><li>画像ごとに個別に作成する

echo '<ul class="qandaul>';
if (empty($arrImageFile[$key])) {
    echo '<li>&nbsp;</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]));
于 2013-01-23T00:11:21.427 に答える
0

の代わりにimplode("\n", $arrImageFile[$key])

使用implode("</li>\n<li>", $arrImageFile[$key])

li重要なのは、1つの画像に対して1つ作成する必要があるということです。

echo '<td width="11%" class="imagetd">';
if (empty($arrImageFile[$key])) {
    echo '&nbsp;';
} 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>';
于 2013-01-23T00:11:25.613 に答える
0

<li>すべてが1つのタグにラップされているためです。echo '<ul class="qandaul"><li>';

それぞれを独自のものに入れます<li>

于 2013-01-23T00:11:28.963 に答える
0

htmlのポインテッドリストマークアップは次のとおりです。

<ul>
    <li>First</li>
    <li>Second</li>
    <li>Third</li>
</ul>

したがって、「</ li> <li>」で内包するか、forループ(またはforeach)を使用する必要があります。

于 2013-01-23T00:11:48.420 に答える
-1

箇条書きはCSSスタイルによって異なります。CSSスタイルがulとクラスqandaulについて何を言っているかを確認してください。

于 2013-01-23T00:11:49.790 に答える