php交叉合並數組
阿新 • • 發佈:2018-05-17
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交叉合並數組