《PHP教程:PHP合并數(shù)組的2種方法小結(jié)》要點(diǎn):
本文介紹了PHP教程:PHP合并數(shù)組的2種方法小結(jié),希望對(duì)您有用。如果有疑問(wèn),可以聯(lián)系我們。
PHP實(shí)戰(zhàn)前言
PHP實(shí)戰(zhàn)在此前合并數(shù)組我一直用的是array_merge()
這個(gè)函數(shù),但最近我在換工作的時(shí)候遇到一道合并數(shù)組的面試題,我當(dāng)時(shí)想的是將兩個(gè)數(shù)組先轉(zhuǎn)化為字符串,合并后再轉(zhuǎn)化為數(shù)組輸出,面試官說(shuō)這個(gè)思路不太對(duì),完了bulabula講了一下數(shù)組基礎(chǔ)的東西,然后確實(shí)是因?yàn)榻?jīng)驗(yàn)問(wèn)題,或者是代碼寫(xiě)太少,想不到還有什么方法,今天我百度了一下,原來(lái)還有‘+'號(hào),
PHP實(shí)戰(zhàn)array_merge_recursive()
,也是可以用來(lái)合并數(shù)組的,根據(jù)我的記憶,我把那道題寫(xiě)出來(lái)看一下:
PHP實(shí)戰(zhàn)
$a = array('color'=>'red',5,6);
$b = array('color'=>'blue','type'=>'fruit',6,7);
$arr = array_merge($a,$b);
var_dump($arr);
PHP實(shí)戰(zhàn)
array (size=6)
'color' => string 'blue' (length=4)
0 => int 5
1 => int 6
'type' => string 'fruit' (length=5)
2 => int 6
3 => int 7
PHP實(shí)戰(zhàn)要求是在不使用array_merge()
的情況的得到相同的效果;
PHP實(shí)戰(zhàn)(array_merge()
合并數(shù)組會(huì)把前一個(gè)數(shù)組中關(guān)聯(lián)形式數(shù)組的鍵值相同的覆蓋,索引形式的則按鍵值順序合并在一起)
PHP實(shí)戰(zhàn)1.先用array_merge_recursive()函數(shù)來(lái)合并一下:
PHP實(shí)戰(zhàn)
$a = array('color'=>'red',5,6);
$b = array('color'=>'blue','type'=>'fruit',6,7);
$arr = array_merge_recursive($a,$b);
var_dump($arr);
PHP實(shí)戰(zhàn)輸出結(jié)果:
PHP實(shí)戰(zhàn)
array (size=6)
'color' =>
array (size=2)
0 => string 'red' (length=3)
1 => string 'blue' (length=4)
0 => int 5
1 => int 6
'type' => string 'fruit' (length=5)
2 => int 6
3 => int 7
PHP實(shí)戰(zhàn)從結(jié)果可以看出array_merge_recursive()
函數(shù)會(huì)把鍵值相同的值以一個(gè)新的關(guān)聯(lián)數(shù)組的形式返回,并以這個(gè)鍵值作為二維數(shù)組的鍵值,其他索引形式則不會(huì)受影響.
PHP實(shí)戰(zhàn)比起array_merge()
的話就不會(huì)出現(xiàn)后面的數(shù)組鍵和前一個(gè)相同就把前一個(gè)的值覆蓋的情況了.
PHP實(shí)戰(zhàn)2.再看下‘+'號(hào)合并數(shù)組的情況:
PHP實(shí)戰(zhàn)
$a = array('color'=>'red',5,6);
$b = array('color'=>'blue','type'=>'fruit',6,7);
$arr = $a+$b;
var_dump($arr);
PHP實(shí)戰(zhàn)輸出結(jié)果:
PHP實(shí)戰(zhàn)
array (size=4)
'color' => string 'red' (length=3)
0 => int 5
1 => int 6
'type' => string 'fruit' (length=5)
PHP實(shí)戰(zhàn)從這個(gè)結(jié)果可以看出,使用‘+'號(hào)合并數(shù)組,是前面覆蓋后面的,和array_merge()
相反,而且它比array_merge()
更狠,如果以索引形式出現(xiàn)的數(shù)組的內(nèi)容,合并后如果鍵值相同也會(huì)覆蓋掉!
PHP實(shí)戰(zhàn)總結(jié)
PHP實(shí)戰(zhàn)好了,以上就是這篇文章的全部?jī)?nèi)容了,是我個(gè)人的一些總結(jié),本人入行不久,火候欠佳,如有總結(jié)不到位地方請(qǐng)各位高手批評(píng)指正,一定虛心接納!
轉(zhuǎn)載請(qǐng)注明本頁(yè)網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/2599.html