合併陣列
array_merge()函數將陣列合併成一起,傳回一個聯合的陣列。所得的數組以第一個輸入數組參數開始,並依後面數組參數出現的順序依序迫加。其形式為:
1 array array_merge (array array1 array2…,arrayN)
將一個或多個陣列的單元合併起來,一個陣列中的數值附加在前一個陣列的後面。傳回作為結果的陣列。
如果輸入的陣列中有相同的字串鍵名,則該鍵名後面的值將覆寫前一個值。然而,如果數組包含數字鍵名,後面的值將不會覆蓋原來的值,而是附加到後面。
如果只給了一個陣列且該陣列是數字索引的,則鍵名會以連續方式重新索引。
實例如下:
1 $face = array("J","Q","K","A");
2 $numbered = array("2","3","4","5 ","6","7","8","9");
3 $cards = array_merge($face, $numbered);
4 shuffle($cards);
5 print_r($cards);
這將傳回如下所示的結果,運行程式碼:
1 Array ( [0] => A [1] => 4 [2] => 9 [3] => 3 [4] => K [5] => 7 [6] => 5 [7] => Q [8] => 6 [9] => 8 [10] => 2 [11] => J )
遞歸追加數組
array_merge_recursive()函數與array_merge()相同,可以將兩個或多個數字組合併在一起,形成一個聯合的數組.兩者之間 的差異在於,當某個輸入數組中的某個鍵己經存在於結果數組中時該函數會採取不同的處理方式. array_merge()會覆寫前面存在的鍵/值對,替換為目前輸入數組中的鍵/值對,而array_merge_recursive()將把兩個值合併在一起,形成一個新的數組,並以原有的鍵作為數組名。還有一 個數字組合並的形式,就是遞歸追加數組。其形式為:
1 array array_merge_recursive( array key,array values )
範例如下:
1 $class1 = array("John" => 100, "James" => 85); Micky" => 78, "John" => 45);
3 $classScores = array_merge_recursive($class1, $class2);
4 print_r($classScores);
這會傳回下列結果:Ah ] => Array ( [0] => 100 [1] => 45 ) [James] => 85 [Micky] => 78 )
連接兩個數組
array_combine()函數會得到一個新數組,它由一組提交的鍵和對應的值組成。其形式為:
1 array array_merge(array array1,array array2[…,array arrayN])
注意,兩個輸入陣列必須大小相同,不能為空。例如:
1 $abbreviations = array("AL","AK","AZ","AR");
2 $states = array("Alabama","Alaska","Arizona","Arkansas") ;
3 $stateMap = array_combine($abbreviations,$states);
4 print_r($stateMap);
這會回傳:
1 Array ( [AL] => Alabama [AK] => Alaska [AZ]
1 Array ( [AL] => Alabama [AK] => Arizona [AR] => Arkansas )