1

我设法找到了接近我需要的答案,但我仍然遇到问题。我的代码基于Count number of iterations in a foreach loop的答案。

基本上,我想将一个类添加到出现在 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 元素的“数字”键:

<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

其次,当你使用增量变量时,最好的做法是将增量放在循环结束之前。您可能为此使用不适当的索引的原因

这应该是正确的:

<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 回答