顺序重复数组的索引,直到匹配指定的值

时间:2018-12-20 05:30:53

标签: php arrays

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

例如:

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次,那么我想以某种方式填充数组:{{1 }}。这样我就可以输出所需数量的打开和关闭div。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

尝试一下(工作example

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