PHP中合并數(shù)組的常見方法分享
相信各位phper在日常開發(fā)中,會(huì)經(jīng)常遇到需要合并數(shù)組的場(chǎng)景。那么,在php中都有哪一些方法可以用來(lái)合并數(shù)組呢。
第一種,使用“+”運(yùn)算符
使用加號(hào)“+”運(yùn)算符,可以直接將兩個(gè)數(shù)組合并成一個(gè)數(shù)組。
示例代碼:
<?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);
輸出結(jié)果:
// $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)
}
注意:使用加號(hào)“+”運(yùn)算符進(jìn)行數(shù)組合并,兩個(gè)數(shù)組元素鍵相同的情況下,前面的元素會(huì)覆蓋后面的元素。
第二種,使用array_merge()函數(shù)
用法:array_merge(array1,array2,array3...)
array_merge()函數(shù)用于將一個(gè)或者多個(gè)數(shù)組合并成一個(gè)數(shù)組。
如果兩個(gè)或者多個(gè)數(shù)組元素有相同的鍵名,則最后的元素會(huì)覆蓋其他元素。
示例代碼:
<?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);
輸出結(jié)果:
// $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) {
}
注意:兩個(gè)數(shù)組的元素鍵相同的情況下,后面的元素會(huì)覆蓋前面的元素。但如果數(shù)組的索引是數(shù)字索引或者數(shù)字字符串索引,合并后的數(shù)組的數(shù)字索引會(huì)按照順序重置,從第一個(gè)數(shù)組的第一個(gè)數(shù)字索引元素從0開始依次填充。
第三種,使用array_merge_recursive()函數(shù)
用法:array_merge_recursive(array1,array2,array3...)
array_merge_recursive()函數(shù)用于將一個(gè)或者多個(gè)數(shù)組合并成一個(gè)數(shù)組。
示例代碼:
<?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);
輸出結(jié)果:
// $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)
}
注意:如果遇到兩個(gè)或者多個(gè)數(shù)組的元素的鍵相同,array_merge_recursive()不會(huì)進(jìn)行鍵名覆蓋,而是將多個(gè)相同鍵名遞歸組成一個(gè)數(shù)組。如果數(shù)組的索引是數(shù)字索引或者數(shù)字字符串索引,合并后的數(shù)組的數(shù)字索引會(huì)按照順序重置,從第一個(gè)數(shù)組的第一個(gè)數(shù)字索引元素從0開始依次填充。
第四種,使用array_combine()函數(shù)
用法:array_combine(keys,values)
array_combine()函數(shù),通過(guò)合并兩個(gè)數(shù)組來(lái)創(chuàng)建一個(gè)新的數(shù)組,其中一個(gè)數(shù)組元素為鍵名,另外一個(gè)數(shù)組的元素為鍵值。
示例代碼:
<?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);
輸出結(jié)果:
// $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)
}
注意:鍵名數(shù)組和鍵值數(shù)組的元素個(gè)數(shù)必須相同!
到此這篇關(guān)于PHP中合并數(shù)組的常見方法分享的文章就介紹到這了,更多相關(guān)PHP合并數(shù)組內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
php中json_decode()和json_encode()的使用方法
json_decode對(duì)JSON格式的字符串進(jìn)行編碼而json_encode對(duì)變量進(jìn)行 JSON 編碼,需要的朋友可以參考下2012-06-06php調(diào)用C代碼的實(shí)現(xiàn)方法
本篇文章主要是對(duì)php調(diào)用C代碼的實(shí)現(xiàn)方法進(jìn)行了介紹,需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助2014-03-03php使用get_class_methods()函數(shù)獲取分類的方法
這篇文章主要介紹了php使用get_class_methods()函數(shù)獲取分類的方法,結(jié)合實(shí)例形式分析了get_class_methods()函數(shù)獲取類中成員方法的使用技巧,需要的朋友可以參考下2016-07-07PHP腳本監(jiān)控Nginx 502錯(cuò)誤并自動(dòng)重啟php-fpm
這篇文章主要介紹了PHP腳本監(jiān)控Nginx 502錯(cuò)誤并自動(dòng)重啟php-fpm,本文直接給出實(shí)現(xiàn)代碼,然后放到cron中執(zhí)行,需要的朋友可以參考下2015-05-05php實(shí)現(xiàn)將base64格式圖片保存在指定目錄的方法
這篇文章主要介紹了php實(shí)現(xiàn)將base64格式圖片保存在指定目錄的方法,涉及php針對(duì)圖片文件的傳輸、判定及轉(zhuǎn)換等相關(guān)操作技巧,需要的朋友可以參考下2016-10-10PHP 加密/解密函數(shù) dencrypt(動(dòng)態(tài)密文,帶壓縮功能,支持中文)
采用SHA1生成密匙簿,超過(guò)300個(gè)字符使用ZLIB壓縮 支持中文,大家可以測(cè)試下。2009-01-01讓的PHP代碼飛起來(lái)的40條小技巧(提升php效率)
這是在網(wǎng)上看到的一篇帖子,講的自己感覺比較實(shí)用,很注重細(xì)節(jié)【呵呵,當(dāng)然是指對(duì)像我一樣的業(yè)余PHPer而言了】,又擔(dān)心以后找不到原帖子,所以就轉(zhuǎn)了過(guò)來(lái)。2010-04-04