首页 > 解决方案 > 顺序重复数组的索引,直到它与指定的值匹配

问题描述

我正在尝试编写一个函数,该函数将循环遍历数组并根据其值执行任务。

例如:

foreach ($content as $i => $c) {
    cycle(array('<div class="row">', '', ''), $i)
    $content;
    cycle(array('', '', '</div>'), $i)
}

功能:

function cycle($cycles, $i) {
    if ($cycles[$i] !== '') {
       echo $cycles[$i];
    }
}

如果我传入的数组的长度(计数)与cycle()我调用函数的 forloop 迭代次数相匹配,则此方法可以正常工作。但是,如果迭代次数明显更大,我会出错。

你们中的一些人可能已经猜到我试图用<div class="row"></div>指定数量的迭代或循环来包装内容。我不想使用模数。

我希望该cycle()函数忽略空值,并且仅在它不是空字符串或null.

理想情况下,如果我的数组太短,我想从 0 开始重复它自己的索引,直到它的索引计数匹配$i

因此,如果我有一个诸如$arr = array(a,b,c,d);amd 之类的数组并将其传递给我的cycle($arr)函数,并且它在 forloop 中运行 7 次,那么我想以某种方式填充数组array(a,b,c,d,a,b,c):所以我可以输出所需数量的打开和关闭 div。

有什么建议么?

标签: phparrays

解决方案


试试这个(工作示例

function cycle($cycles, $i) {
    $j=$i%count($cycles);
    if ($cycles[$j] !== '') {
       echo $cycles[$j];
    }
}

推荐阅读