PHP循环:从第2个开始每4次迭代

时间:2013-12-22 19:32:08

标签: php arrays foreach iteration

我有一个数组,里面可以包含任意数量的项目,我需要以某种模式从中获取值。

很难解释我的确切问题,但这里是我需要获取值的那种模式:

  1. 没有
  2. 没有
  3. 没有
  4. 没有
  5. 没有
  6. 没有
  7. 没有
  8. 没有
  9. 没有
  10. 我有以下foreach()循环,它与我需要的类似:

    $count = 1;
    
    foreach($_POST['input_7'] as $val) {        
    if ($count % 2 == 0) {
            echo $val;
            echo '<br>';
        }
    
        $count ++;
    }
    

    但是,这只会获取“偶数”的数组项,而不是我需要的那种模式。

    我可以修改我的循环以匹配我需要的东西吗?

2 个答案:

答案 0 :(得分:4)

您可以使用for循环更简单地将开始设置为1(第二个值),并在每次迭代后添加4:

for ($i = 1; $i < count($_POST['input_7']); $i += 4) {
    echo $_POST['input_7'][$i] . '<br />';
}

示例

<?php
    $array = array(
        'foo1', 'foo2', 'foo3', 'foo4', 'foo5', 
        'foo6', 'foo7', 'foo8', 'foo9', 'foo10', 
        'foo11', 'foo12', 'foo13', 'foo14', 'foo15'
    );

    for ($i = 1; $i < count($array); $i += 4) {
        echo $array[$i] . '<br />';
    }
?>

<强>输出

  

foo2的
foo6
foo10
foo14

DEMO

答案 1 :(得分:0)

试试这个:

$count = 3;

foreach($_POST['input_7'] as $val) {

    if ($count % 4 == 0) {
        echo $val;
        echo '<br>';
    }

    $count ++;
}