php - 顺序重复数组的索引,直到它与指定的值匹配
问题描述
我正在尝试编写一个函数,该函数将循环遍历数组并根据其值执行任务。
例如:
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。
有什么建议么?
解决方案
试试这个(工作示例)
function cycle($cycles, $i) {
$j=$i%count($cycles);
if ($cycles[$j] !== '') {
echo $cycles[$j];
}
}
推荐阅读
- java - Java Soap 客户端太慢了
- jquery - 使用 JQuery 更改 CSS 属性
- ruby-on-rails - 在 fields_for 表单中包含现有的和新的 has_many 嵌套对象
- reactjs - 使用 Post 方法提交的表单不适用于 PWA 中的目标 _blank
- service-worker - 工作箱预缓存将项目放入 -temp 缓存中,以后不再使用
- git - 文件未显示在 git 客户端源树中
- java - 如何让 IntelliJ 将 Java 8 用于 Maven 模块而不是语言级别 8 的 Java 11?
- vue.js - 如何更改 favicon.ico 和页面标题(Vue + Webpack)?
- erlang - ERLANG 函数,类似于 while 循环 while(true)
- r - 使用 dplyr 通过分组变量解析多个条件