本篇內(nèi)容主要講解“PHP合并數(shù)組的常見方法有哪些”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“PHP合并數(shù)組的常見方法有哪些”吧!
創(chuàng)新互聯(lián)公司主打移動(dòng)網(wǎng)站、成都做網(wǎng)站、網(wǎng)站制作、網(wǎng)站改版、網(wǎng)絡(luò)推廣、網(wǎng)站維護(hù)、國(guó)際域名空間、等互聯(lián)網(wǎng)信息服務(wù),為各行業(yè)提供服務(wù)。在技術(shù)實(shí)力的保障下,我們?yōu)榭蛻舫兄Z穩(wěn)定,放心的服務(wù),根據(jù)網(wǎng)站的內(nèi)容與功能再?zèng)Q定采用什么樣的設(shè)計(jì)。最后,要實(shí)現(xiàn)符合網(wǎng)站需求的內(nèi)容、功能與設(shè)計(jì),我們還會(huì)規(guī)劃穩(wěn)定安全的技術(shù)方案做保障。
array_merge
()函數(shù)-覆蓋前面相同鍵名的數(shù)組元素
在PHP中我們可以通過(guò)array_merge
()函數(shù)來(lái)合并數(shù)組,也就是將多個(gè)數(shù)組中的元素合并到一個(gè)數(shù)組中,array_merge
函數(shù)的基本語(yǔ)法格式如下:
array_merge(array1,array2,array3...)
其中需要注意的是:參數(shù)array123就是用來(lái)進(jìn)行合并的數(shù)組。通過(guò)該函數(shù)能夠合并多個(gè)數(shù)組,其中如果兩個(gè)元素或者說(shuō)有多個(gè)元素他們有著相同的鍵名,合并之后他們的鍵名是最后的元素會(huì)覆蓋其他元素。
通過(guò)該函數(shù)也能夠合并一個(gè)數(shù)組,沒錯(cuò),一個(gè)數(shù)組怎么說(shuō)合并呢,這時(shí)候說(shuō)的是如果函數(shù)輸入的只有一個(gè)數(shù)組,并且這個(gè)數(shù)組的鍵名是整數(shù),當(dāng)通過(guò)該函數(shù)“合并”之后輸出的新數(shù)組它的鍵名是從0
開始進(jìn)行的重新索引。
接下來(lái)我們通過(guò)示例來(lái)簡(jiǎn)單的看一下array_merge
函數(shù)的使用,示例如下:
"red","b"=>"green"); $a2=array("c"=>"blue","b"=>"yellow"); print_r(array_merge($a1,$a2)); ?>
輸出結(jié)果:
在上述示例中,兩個(gè)要進(jìn)行合并的數(shù)組中都有鍵名為“b”的元素,可以看到最后的輸出結(jié)果中最后一個(gè)鍵名為“b”的元素“yellow”覆蓋了前面的元素,所以最后輸出的結(jié)果中只有三個(gè)元素。
下面我們?cè)賮?lái)看一下“合并”一個(gè)數(shù)組的操作,示例如下:
"red",4=>"green"); print_r(array_merge($a)); ?>
輸出結(jié)果:
在上述示例中,在需要“合并”的一個(gè)數(shù)組中,該數(shù)組的鍵名都是整數(shù)并不是從 0開始進(jìn)行索引的,當(dāng)通過(guò)array_merge函數(shù)合并之后,該數(shù)組的鍵名改變從0開始索引。
array_merge_recursive
函數(shù)-不會(huì)覆蓋相同鍵名數(shù)組元素
在PHP中不僅array_merge函數(shù)能夠合并數(shù)組,需要知道的是array_merge_recursive
函數(shù)也能夠把一個(gè)或者多個(gè)數(shù)組合并成一個(gè)數(shù)組,兩者之間并沒有太大的區(qū)別,需要知道的區(qū)別就是:
當(dāng)兩個(gè)需要進(jìn)行合并的數(shù)組中有相同鍵名的元素,兩個(gè)函數(shù)的處理方法不一樣,上文中的示例也說(shuō)了,array_merge
函數(shù)合并之后他們的鍵名是最后的元素會(huì)覆蓋其他元素;但是array_merge_recursive
函數(shù)卻能夠?qū)⑾嗤逆I名元素遞歸成一個(gè)數(shù)組,并不會(huì)覆蓋掉。
我們用上文中的示例來(lái)看一下,示例如下:
"red","b"=>"green"); $a2=array("c"=>"blue","b"=>"yellow"); print_r(array_merge($a1,$a2)); echo '
'; print_r(array_merge_recursive($a1,$a2)); ?>
輸出結(jié)果:
通過(guò)上述示例就能夠看出兩個(gè)函數(shù)的區(qū)別:需要注意的是,相同的兩組數(shù)組,通過(guò)不同的函數(shù)進(jìn)行合并,輸出的結(jié)果不同,通過(guò)array_merge
函數(shù)進(jìn)行合并,相同的元素鍵名會(huì)被覆蓋掉,通過(guò)array_merge_recursive
函數(shù)合并的元素,鍵名不會(huì)被覆蓋掉。
還有就是,通過(guò)array_merge_recursive函數(shù)來(lái)進(jìn)行“合并”一個(gè)數(shù)組的話,結(jié)果和array_merge函數(shù)一樣會(huì)從0
開始重新進(jìn)行索引。
示例如下:
"red",4=>"green"); print_r(array_merge_recursive($a)); ?>
輸出結(jié)果:
由上述示例便能看出array_merge_recursive
函數(shù)和array_merge
函數(shù)的主要區(qū)別在于會(huì)不會(huì)覆蓋相同鍵名的元素。
+
合并數(shù)組-覆蓋后面相同鍵名的數(shù)組元素
通過(guò)+
來(lái)進(jìn)行數(shù)組的合并可以說(shuō)是最簡(jiǎn)單的一種數(shù)組合并方法了,讓我們直接通過(guò)示例來(lái)看一下用法,示例如下:
"red","b"=>"green"); $a2=array("c"=>"blue","b"=>"yellow"); $a3=$a1+$a2; print_r($a3); ?>
輸出結(jié)果:
由上述示例能夠看出,通過(guò)+的方式來(lái)合并數(shù)組,和通過(guò)array_merge函數(shù)的方式來(lái)合并數(shù)組的區(qū)別就在于:
array_merge
函數(shù)遇到相同鍵名的不同數(shù)組元素,合并之后會(huì)被覆蓋掉,被覆蓋的是前面的數(shù)組元素;
而+
遇到相同鍵名的不同數(shù)組元素進(jìn)行合并,合并之后也會(huì)被覆蓋掉,但是覆蓋的元素是后面的數(shù)組元素。
array_combine函數(shù)-
到此,相信大家對(duì)“PHP合并數(shù)組的常見方法有哪些”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!