1. 程式人生 > >php交叉合並數組

php交叉合並數組

targe target AR hive UNC code TP color merge

如數組 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交叉合並數組