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++;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog