PHP合并數(shù)組的2種方法小結(jié)
前言
在此前合并數(shù)組我一直用的是array_merge()
這個函數(shù),但最近我在換工作的時候遇到一道合并數(shù)組的面試題,我當(dāng)時想的是將兩個數(shù)組先轉(zhuǎn)化為字符串,合并后再轉(zhuǎn)化為數(shù)組輸出,面試官說這個思路不太對,完了bulabula講了一下數(shù)組基礎(chǔ)的東西,然后確實是因為經(jīng)驗問題,或者是代碼寫太少,想不到還有什么方法,今天我百度了一下,原來還有‘+'號,
array_merge_recursive()
,也是可以用來合并數(shù)組的,根據(jù)我的記憶,我把那道題寫出來看一下:
$a = array('color'=>'red',5,6); $b = array('color'=>'blue','type'=>'fruit',6,7); $arr = array_merge($a,$b); var_dump($arr);
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
要求是在不使用array_merge()
的情況的得到相同的效果;
(array_merge()
合并數(shù)組會把前一個數(shù)組中關(guān)聯(lián)形式數(shù)組的鍵值相同的覆蓋,索引形式的則按鍵值順序合并在一起)
1.先用array_merge_recursive()函數(shù)來合并一下:
$a = array('color'=>'red',5,6); $b = array('color'=>'blue','type'=>'fruit',6,7); $arr = array_merge_recursive($a,$b); var_dump($arr);
輸出結(jié)果:
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
從結(jié)果可以看出array_merge_recursive()
函數(shù)會把鍵值相同的值以一個新的關(guān)聯(lián)數(shù)組的形式返回,并以這個鍵值作為二維數(shù)組的鍵值,其他索引形式則不會受影響。
比起array_merge()
的話就不會出現(xiàn)后面的數(shù)組鍵和前一個相同就把前一個的值覆蓋的情況了。
2.再看下‘+'號合并數(shù)組的情況:
$a = array('color'=>'red',5,6); $b = array('color'=>'blue','type'=>'fruit',6,7); $arr = $a+$b; var_dump($arr);
輸出結(jié)果:
array (size=4) 'color' => string 'red' (length=3) 0 => int 5 1 => int 6 'type' => string 'fruit' (length=5)
從這個結(jié)果可以看出,使用‘+'號合并數(shù)組,是前面覆蓋后面的,和array_merge()
相反,而且它比array_merge()
更狠,如果以索引形式出現(xiàn)的數(shù)組的內(nèi)容,合并后如果鍵值相同也會覆蓋掉!
總結(jié)
好了,以上就是這篇文章的全部內(nèi)容了,是我個人的一些總結(jié),本人入行不久,火候欠佳,如有總結(jié)不到位地方請各位高手批評指正,一定虛心接納!
相關(guān)文章
php進(jìn)程通信之共享內(nèi)存詳細(xì)講解
這篇文章主要介紹了php進(jìn)程通信之共享內(nèi)存,共享內(nèi)存是一種最為高效的進(jìn)程間通信(IPC)方式,進(jìn)程可以直接讀寫內(nèi)存,而不需要任何數(shù)據(jù)的拷貝2022-09-09php自定義函數(shù)實現(xiàn)JS的escape的方法示例
這篇文章主要介紹了php自定義函數(shù)實現(xiàn)JS的escape的方法,結(jié)合完整實例形式分析了php實現(xiàn)JS的escape功能函數(shù)的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下2016-07-07PHP獲取ip對應(yīng)地區(qū)和使用網(wǎng)絡(luò)類型的方法
這篇文章主要介紹了PHP獲取ip對應(yīng)地區(qū)和使用網(wǎng)絡(luò)類型的方法,實例分析了php通過調(diào)用ip138數(shù)據(jù)庫獲取IP及網(wǎng)絡(luò)類型的技巧,需要的朋友可以參考下2015-03-03php自定義函數(shù)實現(xiàn)二維數(shù)組排序功能
這篇文章主要介紹了php自定義函數(shù)實現(xiàn)二維數(shù)組排序功能,涉及php針對數(shù)組的判斷、遍歷、轉(zhuǎn)換、排序等相關(guān)操作技巧,需要的朋友可以參考下2016-07-07淺談PHP的exec()函數(shù)無返回值排查方法(必看)
下面小編就為大家?guī)硪黄獪\談PHP的exec()函數(shù)無返回值排查方法(必看)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-03-03