您好,登錄后才能下訂單哦!
本篇內(nèi)容主要講解“PHP合并數(shù)組的常見(jiàn)方法有哪些”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“PHP合并數(shù)組的常見(jiàn)方法有哪些”吧!
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ù)組,沒(méi)錯(cuò),一個(gè)數(shù)組怎么說(shuō)合并呢,這時(shí)候說(shuō)的是如果函數(shù)輸入的只有一個(gè)數(shù)組,并且這個(gè)數(shù)組的鍵名是整數(shù),當(dāng)通過(guò)該函數(shù)“合并”之后輸出的新數(shù)組它的鍵名是從0
開(kāi)始進(jìn)行的重新索引。
接下來(lái)我們通過(guò)示例來(lái)簡(jiǎn)單的看一下array_merge
函數(shù)的使用,示例如下:
<?php $a1=array("a"=>"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ù)組的操作,示例如下:
<?php $a=array(3=>"red",4=>"green"); print_r(array_merge($a)); ?>
輸出結(jié)果:
在上述示例中,在需要“合并”的一個(gè)數(shù)組中,該數(shù)組的鍵名都是整數(shù)并不是從 0開(kāi)始進(jìn)行索引的,當(dāng)通過(guò)array_merge函數(shù)合并之后,該數(shù)組的鍵名改變從0開(kāi)始索引。
array_merge_recursive
函數(shù)-不會(huì)覆蓋相同鍵名數(shù)組元素
在PHP中不僅array_merge函數(shù)能夠合并數(shù)組,需要知道的是array_merge_recursive
函數(shù)也能夠把一個(gè)或者多個(gè)數(shù)組合并成一個(gè)數(shù)組,兩者之間并沒(méi)有太大的區(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)看一下,示例如下:
<?php $a1=array("a"=>"red","b"=>"green"); $a2=array("c"=>"blue","b"=>"yellow"); print_r(array_merge($a1,$a2)); echo '<br/>'; 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
開(kāi)始重新進(jìn)行索引。
示例如下:
<?php $a=array(3=>"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)看一下用法,示例如下:
<?php $a1=array("a"=>"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ù)組的常見(jiàn)方法有哪些”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。