php 兩個數字合併的方法:1、使用「 」運算符,可以直接將兩個數字組合併成一個陣列;2、使用「array_merge()」函數,將一個或多個數字組合並成一個陣列;3、使用「array_merge_recursive()」函數,將一個或多個陣列合併成一個陣列;4、使用「array_combine()」函數,合併兩個陣列來建立一個新的陣列。
本教學操作環境:windows10系統、php8.1.3版本、DELL G3電腦。
相信各位phper在日常開發中,會經常遇到需要合併陣列的場景。那麼,在php中都有哪一些方法可以用來合併陣列呢。
第一種,使用「 」運算子
使用加號「 」運算符,可以直接將兩個數字組合成一個陣列。
範例程式碼:
<?php $a = [1,2,3,'a'=>'a']; $b = ['a'=>'aa','b'=>'bb',4,5,6,7,'c'=>'cc',8]; $c = $a + $b; var_dump($a); var_dump($b); var_dump($c);
輸出結果:
// $a array(4) { [0]=> int(1) [1]=> int(2) [2]=> int(3) ["a"]=> string(2) "a" } // $b array(8) { ["a"]=> string(2) "aa" ["b"]=> string(2) "bb" [0]=> int(4) [1]=> int(5) [2]=> int(6) [3]=> int(7) ["c"]=> string(2) "cc" [4]=> int(8) } // $c array(8) { [0]=> int(1) [1]=> int(2) [2]=> int(3) ["a"]=> string(2) "a" ["b"]=> string(2) "bb" [3]=> int(7) ["c"]=> string(2) "cc" [4]=> int(8) }
注意:使用加號「 」運算子進行數字組合併,兩個陣列元素鍵相同的情況下,前面的元素會覆蓋後面的元素。
第二種,使用array_merge()函數
用法:array_merge(array1,array2,array3...)
array_merge()函數用於將一個或多個數字組合併成一個陣列。
如果兩個或多個陣列元素有相同的鍵名,則最後的元素會覆寫其他元素。
範例程式碼:
<?php $a = [1,2,3,'a'=>'a']; $b = ['a'=>'aa','b'=>'bb',4,5,6,7,'c'=>'cc',8]; $c = array_merge($a,$b); $d = []; $e = array_merge($a,$d); $f = array_merge($d,$b); $g = array_merge([],[]); var_dump($a); var_dump($b); var_dump($c); var_dump($e); var_dump($f); var_dump($g);
輸出結果:
// $a array(4) { [0]=> int(1) [1]=> int(2) [2]=> int(3) ["a"]=> string(1) "a" } // $b array(8) { ["a"]=> string(2) "aa" ["b"]=> string(2) "bb" [0]=> int(4) [1]=> int(5) [2]=> int(6) [3]=> int(7) ["c"]=> string(2) "cc" [4]=> int(8) } // $c array(11) { [0]=> int(1) [1]=> int(2) [2]=> int(3) ["a"]=> string(2) "aa" ["b"]=> string(2) "bb" [3]=> int(4) [4]=> int(5) [5]=> int(6) [6]=> int(7) ["c"]=> string(2) "cc" [7]=> int(8) } // $e array(4) { [0]=> int(1) [1]=> int(2) [2]=> int(3) ["a"]=> string(1) "a" } // $f array(8) { ["a"]=> string(2) "aa" ["b"]=> string(2) "bb" [0]=> int(4) [1]=> int(5) [2]=> int(6) [3]=> int(7) ["c"]=> string(2) "cc" [4]=> int(8) } // $g array(0) { }
注意:兩個陣列的元素鍵相同的情況下,後面的元素會覆寫前面的元素。但如果數組的索引是數字索引或數字字串索引,合併後的數組的數字索引會按照順序重置,從第一個數組的第一個數字索引元素從0開始依序填入。
第三種,使用array_merge_recursive()函數
用法:array_merge_recursive(array1,array2,array3...)
array_merge_recursive()函數用於將一個或多個數字組合併成一個陣列。
範例程式碼:
<?php $a = [1,2,3,'a'=>'a']; $b = ['a'=>'aa','b'=>'bb',4,5,6,7,'c'=>'cc',8]; $c = array_merge_recursive($a,$b); var_dump($a); var_dump($b); var_dump($c);
輸出結果:
// $a array(4) { [0]=> int(1) [1]=> int(2) [2]=> int(3) ["a"]=> string(1) "a" } // $b array(8) { ["a"]=> string(2) "aa" ["b"]=> string(2) "bb" [0]=> int(4) [1]=> int(5) [2]=> int(6) [3]=> int(7) ["c"]=> string(2) "cc" [4]=> int(8) } // $c array(11) { [0]=> int(1) [1]=> int(2) [2]=> int(3) ["a"]=> array(2) { [0]=> string(1) "a" [1]=> string(2) "aa" } ["b"]=> string(2) "bb" [3]=> int(4) [4]=> int(5) [5]=> int(6) [6]=> int(7) ["c"]=> string(2) "cc" [7]=> int(8) }
注意:如果遇到兩個或多個陣列的元素的鍵相同,array_merge_recursive()不會進行鍵名覆蓋,而是將多個相同鍵名遞歸組成一個陣列。如果陣列的索引是數字索引或數字字串索引,合併後的陣列的數字索引會依照順序重置,從第一個陣列的第一個數字索引元素從0開始依序填入。
第四種,使用array_combine()函數
使用:array_combine(keys,values)
array_combine()函數,透過合併兩個數組來建立一個新的數組,其中一個數組元素為鍵名,另外一個數組的元素為鍵值。
範例程式碼:
<?php $a = [1,2,3]; $b = ['a','b','c']; $c = array_combine($a,$b); $d = array_combine($b,$a); var_dump($c); var_dump($d);
輸出結果:
// $c array(3) { [1]=> string(1) "a" [2]=> string(1) "b" [3]=> string(1) "c" } // $d array(3) { ["a"]=> int(1) ["b"]=> int(2) ["c"]=> int(3) }
注意:鍵名陣列和鍵值陣列的元素個數必須相同!
以上是php怎麼合併兩個陣列的詳細內容。更多資訊請關注PHP中文網其他相關文章!