老生常談PHP數(shù)組函數(shù)array_merge(必看篇)
很久之前就用到過這個(gè)函數(shù),只不不過是簡單的用用而已并沒有做太深入的研究
今天在翻閱別人博客時(shí)看到了對array_merge的一些使用心得,故此自己來進(jìn)行一次總結(jié)。
array_merge是將一個(gè)或者多個(gè)數(shù)組進(jìn)行合并。
這個(gè)函數(shù)多用于在從數(shù)據(jù)庫中取出的結(jié)果集的合并操作。
參數(shù)配置也很簡單array_merge(arr1,arr2,arrN)
注意此處的參數(shù)必須為數(shù)組,否則會報(bào)錯(cuò)。
雖然,看起來很簡單,但是其中也有不少的坑。
我們將從單數(shù)組和多數(shù)組的方向來進(jìn)行分析。
1、多個(gè)數(shù)組進(jìn)行合并操作(自定義鍵名):
從下面的運(yùn)行結(jié)果可以看出$arr1與$arr2中鍵名相同的數(shù)據(jù)已被覆蓋。
后面的數(shù)組會將前面數(shù)組中鍵相同的值覆蓋。
<?php $arr1 = array('a'=>'1','b'=>'2'); $arr2 = array('a'=>'1','b'=>'3','c'=>'2'); $ret = array_merge($arr1,$arr2); print_r($ret); //run result Array ( [a] => 1 [b] => 3 [c] => 2 )
2.多個(gè)數(shù)組進(jìn)行合并操作(自定義數(shù)字鍵名):
如果數(shù)組中的鍵名為數(shù)字時(shí),會格式化鍵名并保留所有鍵值。
<?php $arr1 = array(1=>'1',2=>'2'); $arr2 = array(1=>'1',2=>'3',6=>'2'); $ret = array_merge($arr1,$arr2); print_r($ret); //run result Array ( [0] => 1 [1] => 2 [2] => 1 [3] => 3 [4] => 2 )
3.多個(gè)數(shù)組進(jìn)行合并操作(無輸入鍵名):
<?php $arr1 = array(1,2); $arr2 = array(1,2,6); $ret = array_merge($arr1,$arr2); print_r($ret); //run result Array ( [0] => 1 [1] => 2 [2] => 1 [3] => 2 [4] => 6 )
4.多數(shù)在合并操作(當(dāng)一個(gè)數(shù)組為空時(shí)):
一個(gè)數(shù)組為空的這種操作很常見,無論哪個(gè)數(shù)組為空都會顯示現(xiàn)有的值。
<?php $arr1 = array(); $arr2 = array(1,2,6); $ret = array_merge($arr1,$arr2); print_r($ret); //run result Array ( [0] => 1 [1] => 2 [2] => 6 )
5.單數(shù)組操作:
單數(shù)組這種情況一般不會用到array_merge(),因?yàn)檫@個(gè)函數(shù)是用來合并數(shù)組的。
但是如果想恢復(fù)到原始的相關(guān)鍵名可以使用這個(gè)函數(shù),但并不建議這么做。
因?yàn)橛斜人玫暮瘮?shù)可以使用array_values()
單數(shù)組操作其實(shí)和上面的2、3兩種情況很類似,當(dāng)鍵名為數(shù)字時(shí)則會格式化鍵名,否則直接顯示。
<?php $arr1 = array(1=>1,3=>2,6=>6); $ret = array_merge($arr1); print_r($ret); //run result Array ( [0] => 1 [1] => 2 [2] => 6 )
6.當(dāng)遇到兩個(gè)數(shù)組合并的時(shí)候可以使用array_merge(),后面的數(shù)組會與前面的數(shù)組進(jìn)行合并
但是想用前面的數(shù)組與后面的數(shù)組進(jìn)行合并時(shí)怎么辦?
難道把a(bǔ)rray_merge()中的兩個(gè)數(shù)組換一下位置嗎?其實(shí)有一個(gè)更簡單的方法。
就是使用“+”來完成操作。
<?php $arr1 = array('a'=>1,'b'=>2); $arr2 = array('a'=>1,'b'=>3,'c'=>6); $ret = $arr1+$arr2; print_r($ret); //run result Array ( [a] => 1 [b] => 2 [c] => 6 )
以上這篇老生常談PHP數(shù)組函數(shù)array_merge(必看篇)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
PHP表單數(shù)據(jù)寫入MySQL數(shù)據(jù)庫的代碼
這篇文章主要介紹了PHP表單數(shù)據(jù)寫入MySQL數(shù)據(jù)庫的相關(guān)資料非常不錯(cuò)具有參考借鑒價(jià)值,需要的朋友可以參考下2016-05-05關(guān)于PHP中字符串與多進(jìn)制轉(zhuǎn)換函數(shù)的實(shí)例代碼
下面小編就為大家?guī)硪黄P(guān)于PHP中字符串與多進(jìn)制轉(zhuǎn)換函數(shù)的實(shí)例代碼。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-11-11php判斷手機(jī)瀏覽還是web瀏覽,并執(zhí)行相應(yīng)的動作簡單實(shí)例
下面小編就為大家?guī)硪黄猵hp判斷手機(jī)瀏覽還是web瀏覽,并執(zhí)行相應(yīng)的動作簡單實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給的大家做個(gè)參考。一起跟隨小編過來看看吧2016-07-07PHP的一個(gè)完美GIF等比縮放類,附帶去除縮放黑背景
我這里沒有判斷文件類型,因?yàn)閜ng和jpeg縮放后都不會出現(xiàn)黑色背景,就單獨(dú)gif不行..查了下資料發(fā)現(xiàn)了一個(gè)完美的解決辦法,附帶有詳解2014-04-04PHP實(shí)現(xiàn)的網(wǎng)站目錄掃描索引工具
本文給大家分享的是一個(gè)基于PHP實(shí)現(xiàn)的網(wǎng)站目錄掃描索引工具的源碼,非常的簡單實(shí)用,有需要的小伙伴可以參考下2016-09-09在PHP語言中使用JSON和將json還原成數(shù)組的方法
下面小編就為大家?guī)硪黄赑HP語言中使用JSON和將json還原成數(shù)組的方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè) 參考。一起跟隨小編過來看看吧2016-07-07