2012-07-26 41 views
0

我有2個陣列PHP具體合併數組

$arr1 = array(1,3); 
$arr2 = array(2,4); 

我希望他們合併成一個陣列結構:

$arr = array(1,2,3,4); 

擁有PHP函數爲或有好的解決辦法?
UPD:我不需要那種價值觀,我希望把從第一個數組元素,奇數位置,從第二個元素偶數位置

+0

你應該澄清 - 你想這樣:new_array =陣列(ARR1 [0],ARR2 [0],ARR1 [1],ARR2 [1]);不管數組中的值是什麼?這意味着你不能僅僅應用一種排序,而是你想要合併兩個數組,以便arr1和arr2中的相同索引總是彼此相鄰。 – Kasapo 2012-07-26 15:03:47

+0

陣列的長度如何? (寫下你自己的功能吧,這並不難)。 – 2012-07-26 15:03:48

回答

8

你將不得不merge他們,然後再sort他們:

$arr = array_merge($arr1, $arr2); 
sort($arr); 

沒有內置的功能做你所描述的,假設它們都具有相同的長度:

$len = count($arr1); 
for($x=0; $x < $len; $x++) { 
    array_push($arr, $arr1[$x], $arr2[$x]); 
} 
+0

我更新的問題 – 2012-07-26 15:03:54

+0

是的,那它是什麼!謝謝 – 2012-07-26 15:09:06

0
$new_arr = array_merge($arr1, $arr2) 
+0

sort($ new_arr);對編輯抱歉 - 只是排序,而不是分段。 – tigertrussell 2012-07-26 15:01:59

+0

鍵,在奇數密鑰和/或甚鍵陣列,然後使用ASORT,你可以完成你談論你的更新 – tigertrussell 2012-07-26 15:04:33

0

編號Php沒有我知道的這個功能。你必須自己寫,但很簡單。

僞代碼:

cmb = [] 

for (i=0, i<arr1.length, i++) { 
    array_push(cmb, arr1[i]); 
    array_push(cmb, arr2[i]); 
}