【问题标题】:Foreach loop add class depending on numberForeach 循环根据数量添加类
【发布时间】:2013-09-16 08:40:16
【问题描述】:

我已设法找到接近我需要的答案,但我仍然遇到问题。我的代码基于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>

问题似乎是我无法使用&lt;?php echo $count=&gt;$photo[number]; ?&gt;

任何帮助将不胜感激。

【问题讨论】:

  • echo $photo[number]; 仅限
  • &lt;?php echo $photo['number'];?&gt; 不是&lt;?php echo $count=&gt;$photo[number]; ?&gt;
  • 您添加具有类似索引名称的类是否有特定原因?你打算用它们做什么? CSS 和 JS 框架都允许您通过索引来引用元素,而无需任何类。
  • 使用print_r($gallery) 看看你找到了什么结果并发布。

标签: php foreach


【解决方案1】:

我不认为你可以使用

$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 没有任何意义。

希望这会有所帮助。

【讨论】:

  • 如果我使用 然后我得到一个空白页。
  • 您能提供给我们您的 $gallery 数组结构吗?如果可能,请使用: print_r($gallery);在你的 foreach 循环之前并发布它!
  • 问题是,我正在修改别人的代码,我不知道数组在哪里:(
  • 你不需要知道数组在哪里,使用 print_r($gallery);并刷新页面! :) 如果它没有打印出来,你的代码中可能有更多错误!
  • 很抱歉,我应该把 print_r($gallery); ?
【解决方案2】:

我想在循环时在这里解释一些要点:

<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 =&gt; $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>

【讨论】:

  • 感谢您的回答,但我只是得到一个空白页。
  • @DesignSubway,你能把你的数组值放在上面吗?谢谢,我想我误解了你的问题。
  • 问题是,我正在修改别人的代码,我不知道数组在哪里:(
  • @DesignSubway,使用 print_r($gallery);然后更新您上面问题中的详细信息。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-06-13
  • 1970-01-01
  • 1970-01-01
  • 2015-09-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多