php交叉合并数组

Posted 一菲聪天

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php交叉合并数组相关的知识,希望对你有一定的参考价值。

如数组 array1 = array(‘a‘, ‘b‘, ‘c‘);

      array2 = array(‘1‘, ‘2‘, ‘3‘);

希望能实现结果 array3 = array(‘a‘, ‘1‘, ‘b‘, ‘2‘, ‘c‘, ‘3‘); 这种效果,

方法一: 

 1     function cross_merge_array($arr1, $arr2)
 2     {
 3         $arr1 = array_values($arr1);
 4         $arr2 = array_values($arr2);
 5         $count = max(count($arr1), count($arr2));
 6         $arr = array();
 7         for ($i = 0; $i < $count; $i++) {
 8             if ($i < count($arr1)) $arr[] = $arr1[$i]; // 判断,避免下标越界
 9             if ($i < count($arr2)) $arr[] = $arr2[$i]; // 判断,避免下标越界
10         }
11         return $arr;
12     }

参考:https://segmentfault.com/q/1010000014216293

方法二:

 1 function cross_merge_array($arr1, $arr2)
 2 {
 3      $size = count($arr1) > count($arr22) ? count($arr1) : count($arr2); //取出元素最多的数
 4      $arr = array();
 5      for ($i = 0; $i < $count; $i++) {
 6      if ($i < count($arr1)) {
 7               array_push($arr, $arr1[$i]); //将数组压入新的变量
 8          }
 9 
10          if ($i < count($arr2)) {
11               array_push($arr, $arr2[$i]);//将数组压入新的变量
12          }
13      }
14      return $arr;
15 }          

 

参考:http://www.songlin51.com/archives/832.html

 

其实原理都一样:

       都是以长度较长的作为遍历的基准,然后交叉插入新的数组中,在循环过程中需要判断是否会下标越界

 

以上是关于php交叉合并数组的主要内容,如果未能解决你的问题,请参考以下文章

php下将多个数组合并成一个数组的方法与实例代码

如何优化C ++代码的以下片段 - 卷中的零交叉

PHP项目开发经验整理

PHP中数组合并的两种方法及区别介绍

数组合并--php

如何在php中合并没有重复的数组