2013-12-22 67 views
0

我有一个数组,其中可以包含任意数量的项目,我需要从它们中获取特定模式的值。PHP循环:每4个迭代从第二个开始

这是相当难以解释我确切的问题,但在这里是一种模式,我需要抢值:

  1. 没有
  2. 没有
  3. 没有
  4. 没有
  5. 没有
  6. 没有
  7. 没有
  8. 没有

我有以下foreach()循环我需要的是类似于:

$count = 1; 

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

    $count ++; 
} 

然而,这只会选择“偶数”的数组项,而不是我需要的那种模式。

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

+0

你必须使用的foreach或者你可以使用一个for循环? – 2013-12-22 19:38:02

+0

不一定,我只是想这将是循环访问数组的唯一方法? For循环会很好,我想象! – pealo86

回答

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

+0

非常感谢:D – pealo86

+0

@ pealo86请注意这样一个事实,即您的数组必须至少有2个项目,否则这将会出错。 :)如果它有时不会,通过检查count()来包围它,并使它成为'> = 2'。 – h2ooooooo

+0

谢谢,这是你的意思$ _POST ['input_7']数组?如果是这样,这将始终有至少4项我相信:) – pealo86

0

试试这个:

$count = 3; 

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

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

    $count ++; 
} 
+1

如果你不需要保持foreach循环,你应该更喜欢h2ooooooo的解决方案。 –

相关问题