doushupu2521 2016-05-30 11:21
浏览 25
已采纳

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

I need to sort these massives:

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

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

Using a for loop:

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

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

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

}

Finally I want to get like this:

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

The first item is single, others come in pairs, like chess:

audio video
video audio
audio video
audio audio

Providing that items in array which is more, go down together. How to write this loop?

  • 写回答

1条回答 默认 最新

  • donglian1982 2016-05-30 11:33
    关注
    $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++;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?