如何通过两对显示这些大规模?

时间:2016-05-30 11:21:44

标签: php arrays for-loop while-loop

我需要对这些大规模进行排序:

$arr1 = array(
    'audio',
    'audio',
    'audio',
    'audio',
    'audio',
);

$arr2 = array(
    'video',
    'video',
    'video'
);

使用for循环:

$result = array_merge($arr1, $arr2);

for($i = 0; $i < count($result); $i++){

  $finally_arr[] = $arr1[$i];
  $finally_arr[] = $arr2[$i];

}

最后我想这样:

$finally_arr = array(
        [0] => audio
        [1] => video
        [2] => video
        [3] => audio
        [4] => audio
        [5] => video
        [6] => audio
        [7] => audio
    );

第一项是单项,其他项目是成对的,如国际象棋:

audio video
video audio
audio video
audio audio

在数组中提供更多的项目,一起下去。 如何写这个循环?

1 个答案:

答案 0 :(得分:1)

$lenght = max(count($arr1), count($arr2));
$i = 0;

while ($i < $lenght){
    // One order
    if(array_key_exists($i, $arr1))
        $finally_arr[] = $arr1[$i] . '<br>';    
    if(array_key_exists($i, $arr2))
        $finally_arr[] = $arr2[$i] . '<br>';    
    if(++$i >= $lenght) break;

    // Revert order
    if(array_key_exists($i, $arr2))
        $finally_arr[] = $arr2[$i] . '<br>';    
    if(array_key_exists($i, $arr1))
        $finally_arr[] = $arr1[$i] . '<br>';    
    $i++;
}