1

必要なものに近い答えを見つけることができましたが、まだ問題があります。私は自分のコードをforeach ループの反復回数をカウントする の回答に基づいています。

基本的には、foreach ループに現れるリスト項目にクラスを追加したいと考えています。追加したいクラスは、リスト項目のカウントに基づいています。たとえば、出力を次のようにしたい:

<ul>
  <li class="item-1"></li>
  <li class="item-2"></li>
  <li class="item-3"></li>
<ul>

これまでのところ、私のコードは次のようになります。

<ul>
<?php $i = 0; ?>
<?php foreach($gallery as $count=>$photo): ?>
  <?php $i++; ?>
  <li class="item-<?php echo $count=>$photo[number]; ?>"></li>
<?php endforeach; ?>
</ul>

問題は、私が使用できないことのよう<?php echo $count=>$photo[number]; ?>です。

どんな助けでも大歓迎です。

4

2 に答える 2

2

使えないと思います

$count => $photo[number];

特に foreach ループなので、「$count =>」は必要ありません。

$gallery 配列構造を提供していないので、要素 $photo のインデックス $i を出力したいと思います。

だから...うまくいけば、これはあなたがやりたいことです:

<ul>
<?php $i = 0; ?>
<?php foreach($gallery as $count=>$photo): ?>
  <?php $i++; ?>
  <li class="item-<?php echo $photo[$i]; ?>"></li>
<?php endforeach; ?>
</ul>

代わりに、連想配列があり、各 $photo 要素の 'number' キーを出力したい場合:

<ul>
    <?php $i = 0; ?>
    <?php foreach($gallery as $count=>$photo): ?>
      <?php $i++; ?>
      <li class="item-<?php echo $photo['number']; ?>"></li>
    <?php endforeach; ?>
</ul>

しかし、そのような場合、変数 $i は何の意味もありません。

お役に立てれば。

于 2013-09-16T08:51:59.460 に答える
0

ここで、ループするときのいくつかのポイントを説明したいと思います。

<ul>
<?php $i = 0; ?> //No use
<?php foreach($gallery as $count=>$photo): ?>
  <?php $i++; ?> //THIS , No use
  <li class="item-<?php echo $photo[number]; ?>"></li>
<?php endforeach; ?>
</ul>

まずは foreach 関数を使う場合。増分変数を使用する必要はありません。配列内のすべての値が既にループしています。foreach($array as $keys => $values)エコーする必要があるだけです$key['mycolumn'] or $values

2 つ目は、インクリメンタル変数を使用する場合のベスト プラクティスは、ループが終了する前にインクリメンタルを配置することです。そのために不適切なインデックスを使用する可能性がある理由。

これはおそらく正しいはずです:

<ul>
    <?php $i = 0; ?> // you can remove this
    <?php foreach($gallery as $count=>$photo): ?>
      <li class="item-<?php echo $photo[number]; ?>"></li>
        <?php $i++; ?> // increments here , you can remove this
    <?php endforeach; ?>
    </ul>
于 2013-09-16T08:52:38.087 に答える