PHP倒序遍历过滤后数组如何按0/300/600循环规则加增量值
实现方案
核心思路
- 新增一个专属计数器,仅在匹配到
enable=true的有效元素时才自增 - 利用计数器对3取模的结果乘以300,即可得到对应增量值,天然满足每3个元素循环一次的规则
- 原有的倒序遍历、无效元素过滤逻辑保持不变
完整可运行代码
$arr = array( [ 'id' => '141', 'text' => 'Abigail', 'enable' => true ], [ 'id' => '142', 'text' => 'Bernadette', 'enable' => true ], [ 'id' => '143', 'text' => 'Felicity', 'enable' => false ], [ 'id' => '144', 'text' => 'Irene', 'enable' => true ], [ 'id' => '145', 'text' => 'Rachel', 'enable' => true ], [ 'id' => '146', 'text' => 'Sally', 'enable' => true ], [ 'id' => '147', 'text' => 'Victoria', 'enable' => false ] ); // 有效元素计数器,初始为0 $validCount = 0; foreach (array_reverse($arr) as $value) { if (!$value['enable']) { continue; } // 计算增量:第1个0,第2个300,第3个600,循环往复 $increment = ($validCount % 3) * 300; // 可按需将增量存入元素字段,此处直接输出演示效果 echo $value['id'].' --- '.$value['text'].' --- 增量值:'.$increment; echo "<br>"; // 有效元素计数+1 $validCount++; }
运行结果说明
按照示例数组倒序遍历过滤后,有效元素的顺序和对应增量如下:
- Sally(id=146):增量0
- Rachel(id=145):增量300
- Irene(id=144):增量600
- Bernadette(id=142):增量0
- Abigail(id=141):增量300
内容的提问来源于stack exchange,提问作者Arpico ICT
相关产品推荐
相关产品推荐

