php交叉合并数组教程,两种方法
php交叉合并数组
如数组 array1 = array('a', 'b', 'c');
array2 = array('1', '2', '3');
希望能实现结果 array3 = array('a', '1', 'b', '2', 'c', '3'); 这种效果,
方法一:
function cross_merge_array($arr1, $arr2) { $arr1 = array_values($arr1); $arr2 = array_values($arr2); $count = max(count($arr1), count($arr2)); $arr = array(); for ($i = 0; $i < $count; $i++) { if ($i < count($arr1)) $arr[] = $arr1[$i]; // 判断,避免下标越界 if ($i < count($arr2)) $arr[] = $arr2[$i]; // 判断,避免下标越界 } return $arr; }
方法二:
function cross_merge_array($arr1, $arr2) { $size = count($arr1) > count($arr22) ? count($arr1) : count($arr2); //取出元素最多的数 $arr = array(); for ($i = 0; $i < $count; $i++) { if ($i < count($arr1)) { array_push($arr, $arr1[$i]); //将数组压入新的变量 } if ($i < count($arr2)) { array_push($arr, $arr2[$i]);//将数组压入新的变量 } } return $arr; }
其实原理都一样:
都是以长度较长的作为遍历的基准,然后交叉插入新的数组中,在循环过程中需要判断是否会下标越界