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中有多种方式可以合并数组,以下是其中的几种常见方式: 1. 使用array_merge()函数: array_merge()函数可以将两个或多个数组合并一个数组,它会把所有数组的值合并一个数组中。示例代码如下: ``` $array1 = array('foo', 'bar'); $array2 = array('baz', 'qux'); $result = array_merge($array1, $array2); print_r($result); ``` 输出结果为: ``` Array ( [0] => foo [1] => bar [2] => baz [3] => qux ) ``` 2. 使用"+"运算符: "+"运算符也可以用来合并两个数组,它会返回一个数组,其中包含了两个数组的所有元素。示例代码如下: ``` $array1 = array('foo', 'bar'); $array2 = array('baz', 'qux'); $result = $array1 + $array2; print_r($result); ``` 输出结果为: ``` Array ( [0] => foo [1] => bar [2] => baz [3] => qux ) ``` 需要注意的是,使用"+"运算符合并数组时,如果两个数组有相同的键名,那么后面的数组会覆盖前面的数组。 3. 使用array_push()函数: array_push()函数可以将一个或多个元素添加到数组的末尾,从而实现合并数组的效果。示例代码如下: ``` $array1 = array('foo', 'bar'); $array2 = array('baz', 'qux'); foreach ($array2 as $value) { array_push($array1, $value); } print_r($array1); ``` 输出结果为: ``` Array ( [0] => foo [1] => bar [2] => baz [3] => qux ) ``` 需要注意的是,使用array_push()函数合并数组时,需要使用循环来遍历第二个数组,并将其元素一个个添加到第一个数组的末尾。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值