1

PHP foreach ループでこのタイプの構造が必要です。そして私はこのコードを試しました:

<ul>
    <li>1</li>
</ul>
<ul>
    <li>1</li>
    <li>2</li>
    <li>3</li>
    <li>4</li>
    <li>5</li>
</ul>
<ul>
    <li>1</li>
    <li>2</li>
    <li>3</li>
    <li>4</li>
    <li>5</li>
</ul>
<ul>
    <li>1</li>
    <li>2</li>
    <li>3</li>
    <li>4</li>
    <li>5</li>
</ul>

私はループ内でこの条件を試してみましたが、うまくいきましたが、最初のulに1 liが必要です。

<?php
$counter = 1;
foreach( $myposts as $post ) :

  setup_postdata($post); 

  if ($counter % 5 == 1) {
    echo '<ul>';
  }
  echo '<li>testing ...</li>'

  if($counter % 5 == 0) {
    echo '</ul>';
  }
  $counter++;
endforeach;
?>

誰でも私の論理を拡張しますか??

4

1 に答える 1

2

これは私が思いついたものです:

$myposts = array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16);

$counter = 0;
echo '<ul>';
foreach( $myposts as $k=>$post ) :
    //setup_postdata($post); 
    echo '<li>'.$post.'</li>';
    if($counter==0 || $counter==5){
        echo "</ul>".($k!=count($myposts)-1 ? "<ul>" : "");
        $counter = 0;
    }
    $counter++;
endforeach;
if($counter==5){
    echo '</ul>';
}

この最大の誤解は、ほとんどの人が最後のタグを閉じることを気にしない (あなたの場合ul)、または新しいタグを開くul必要がないときに (あなたの場合 ) 開くことです。

Psこれが機能するためにコメントsetup_postdataする必要がありました。

注:配列の要素を追加または削除しても、1,5,5,..., の構造には影響しません (残っているものに応じて残ります)。

于 2013-04-03T23:20:45.753 に答える