Foreach循环,显示X个奇数项目,然后显示X偶数项目

时间:2015-05-24 12:57:27

标签: php arrays foreach

下面我有一个循环,将创建两个奇数和平均数的数组。 但我真正需要的是一个循环,它遍历array并获得第一个 4 奇数项目并显示它们然后显示下一个 4 < / strong> 甚至项目,然后是 4奇数项目,依此类推。

<?php       

    $array = array(1,2,3,4,5,6,7,8,9,10,11,12,13,14);
    $odd = array();
    $even = array();
    foreach($array AS $item){
         if ($item & 1) {
            $odd[] = $item ;            
         }else{
            $even[] = $item ;   
         }
    }
?>

我认为有两个seprate阵列可能会使事情更简单,但我不确定。

1 个答案:

答案 0 :(得分:2)

这应该适合你:

首先,我们将所有偶数值放入一个数组($mixed),将所有奇数值放入一个数组(<?php $array = range(1, 14); $even = array_filter($array, function($v){ return $v % 2 == 0; }); $odd = array_filter($array, function($v){ return $v % 2 == 1; }); $mixed = []; array_map(function($v1, $v2)use(&$mixed){ $mixed = array_merge($mixed, $v1); $mixed = array_merge($mixed, $v2); }, array_chunk($even, 4), array_chunk($odd, 4)); print_r($mixed); ?> )并加array_filter()

然后我们只需用array_map()循环遍历两个数组,其中我们array_chunk()两个数组都成4个组。在匿名函数中我们只是简单地array_merge()带有结果的数组( $mixed)数组。

foreach($mixed as $v)
    echo $v . "<br>";

然后您可以简单地遍历2 4 6 8 1 3 5 7 10 12 14 9 11 13 数组。像这样:

pages

输出:

API.user_timeline([id/user_id/screen_name][, since_id][, max_id][, count][, page])