php - 仅在 3 个值之间循环

标签 php loops

我正在尝试为每个 div 循环一个类。

我知道如何获得第一个和最后一个,但不知道如何迭代 1-3(或者对于其他想要扩展它的人来说更多)

我有什么:

$cats = get_categories();
// default value
$i = 0;

foreach ($cats as $cat) {
    // reset class
    $class = '';

    if(++$i % 3 == 0) { $class = 'third - '; }
    elseif(++$i % 2 == 0) { $class = 'second - '; }
    elseif(++$i % 1 == 0) { $class = 'first - '; }

    echo $class . $cat->name;
}

但是,当我回显 $i 以查看发生了什么时,它每次都在添加值,而不是通过 if 语句(我认为这不会导致它增加数字)

我最终得到这样的输出:

third  - cat01
first  - cat02
second - cat03
third  - cat04
second - cat05
first  - cat06
third  - cat07

最佳答案

主要问题在 $i % 2 == 0 。它应该是 $i % 3 == 1。您必须始终提取模数 3 并根据 0、1 和 2 检查结果:

$cats = array('cat1', 'cat2', 'cat3', 'cat4', 'cat5', 'cat6', 'cat7');
$i = 0;
foreach ($cats as $cat) {
    if ($i % 3 == 0) { $class = ' first'; }
    elseif ($i % 3 == 1) { $class = ' second'; }
    elseif ($i % 3 == 2) { $class = ' third'; }
    $i++;
    echo "\n$class - $cat";
}

输出:

 first - cat1
 second - cat2
 third - cat3
 first - cat4
 second - cat5
 third - cat6

http://ideone.com/mljRcn

它也适用于 4 个类:

http://ideone.com/fLR2nl

关于php - 仅在 3 个值之间循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39543319/

相关文章:

php - require_once(PHPExcel/类/PHPExcel.php): failed to open stream

C#在对父类(super class)对象进行操作时获取对子类变量的访问

c# - 如何在不使用 foreach 的情况下遍历字典

php - 需要将值从 PHP 传递到 Javascript

javascript - 如何在javascript函数中传递两个 View 模型参数

java - Stream 方法在内部进行循环?

r - 循环遍历数据框列名 - R

PHP sqlsrv查询到数据库

javascript - 通过 JS 或 PHP 从新的 youtube 2015 下载视频

php - 在不预先知道 ID 名称的情况下,如何在 php 中获取按钮的 ID