PHP中合並數組的常見方法分享
相信各位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合並數組內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- PHP array_combine() 函數內置函數
- GoFrame框架garray對比PHP的array優勢
- array_values()在php中返回數組的操作實例
- php去掉一維數組的鍵值的實例方法
- 關於PHP方法參數的那一些事