PHP合并數(shù)組+與array_merge的區(qū)別分析
更新時間:2010年08月01日 20:28:28 作者:
PHP中兩個數(shù)組合并可以使用+或者array_merge,但之間還是有區(qū)別的,而且這些區(qū)別如果了解不清楚項目中會要命的!
主要區(qū)別是兩個或者多個數(shù)組中如果出現(xiàn)相同鍵名,鍵名分為字符串或者數(shù)字,需要注意
1)鍵名為數(shù)字時,array_merge()不會覆蓋掉原來的值,但+合并數(shù)組則會把最先出現(xiàn)的值作為最終結果返回,而把后面的數(shù)組擁有相同鍵名的那些值“拋棄”掉(不是覆蓋)
2)鍵名為字符時,+仍然把最先出現(xiàn)的值作為最終結果返回,而把后面的數(shù)組擁有相同鍵名的那些值“拋棄”掉,但array_merge()此時會覆蓋掉前面相同鍵名的值
需要注意的是數(shù)組鍵形式 '數(shù)字' 等價于 數(shù)字
$a = array('a','b');
$b = array('c', 'd');
$c = $a + $b;
var_dump($a);
var_dump(array_merge($a, $b));
$a = array(0 => 'a', 1 => 'b');
$b = array(0 => 'c', 1 => 'b');
$c = $a + $b;
var_dump($c);
var_dump(array_merge($a, $b));
$a = array('a', 'b');
$b = array('0' => 'c', 1 => 'b');
$c = $a + $b;
var_dump($c);
var_dump(array_merge($a, $b));
$a = array(0 => 'a', 1 => 'b');
$b = array('0' => 'c', '1' => 'b');
$c = $a + $b;
var_dump($c);
var_dump(array_merge($a, $b));
結果
array
0 => string 'a' (length=1)
1 => string 'b' (length=1)
2 => string 'c' (length=1)
3 => string 'd' (length=1)
array
0 => string 'a' (length=1)
1 => string 'b' (length=1)
array
0 => string 'a' (length=1)
1 => string 'b' (length=1)
2 => string 'c' (length=1)
3 => string 'b' (length=1)
array
0 => string 'a' (length=1)
1 => string 'b' (length=1)
array
0 => string 'a' (length=1)
1 => string 'b' (length=1)
2 => string 'c' (length=1)
3 => string 'b' (length=1)
array
0 => string 'a' (length=1)
1 => string 'b' (length=1)
array
0 => string 'a' (length=1)
1 => string 'b' (length=1)
2 => string 'c' (length=1)
3 => string 'b' (length=1)
1)鍵名為數(shù)字時,array_merge()不會覆蓋掉原來的值,但+合并數(shù)組則會把最先出現(xiàn)的值作為最終結果返回,而把后面的數(shù)組擁有相同鍵名的那些值“拋棄”掉(不是覆蓋)
2)鍵名為字符時,+仍然把最先出現(xiàn)的值作為最終結果返回,而把后面的數(shù)組擁有相同鍵名的那些值“拋棄”掉,但array_merge()此時會覆蓋掉前面相同鍵名的值
需要注意的是數(shù)組鍵形式 '數(shù)字' 等價于 數(shù)字
復制代碼 代碼如下:
$a = array('a','b');
$b = array('c', 'd');
$c = $a + $b;
var_dump($a);
var_dump(array_merge($a, $b));
$a = array(0 => 'a', 1 => 'b');
$b = array(0 => 'c', 1 => 'b');
$c = $a + $b;
var_dump($c);
var_dump(array_merge($a, $b));
$a = array('a', 'b');
$b = array('0' => 'c', 1 => 'b');
$c = $a + $b;
var_dump($c);
var_dump(array_merge($a, $b));
$a = array(0 => 'a', 1 => 'b');
$b = array('0' => 'c', '1' => 'b');
$c = $a + $b;
var_dump($c);
var_dump(array_merge($a, $b));
結果
復制代碼 代碼如下:
array
0 => string 'a' (length=1)
1 => string 'b' (length=1)
2 => string 'c' (length=1)
3 => string 'd' (length=1)
array
0 => string 'a' (length=1)
1 => string 'b' (length=1)
array
0 => string 'a' (length=1)
1 => string 'b' (length=1)
2 => string 'c' (length=1)
3 => string 'b' (length=1)
array
0 => string 'a' (length=1)
1 => string 'b' (length=1)
array
0 => string 'a' (length=1)
1 => string 'b' (length=1)
2 => string 'c' (length=1)
3 => string 'b' (length=1)
array
0 => string 'a' (length=1)
1 => string 'b' (length=1)
array
0 => string 'a' (length=1)
1 => string 'b' (length=1)
2 => string 'c' (length=1)
3 => string 'b' (length=1)
您可能感興趣的文章:
- PHP中的array數(shù)組類型分析說明
- 類似php的js數(shù)組的in_array函數(shù)自定義方法
- php函數(shù)array_merge用法一例(合并同類數(shù)組)
- php專用數(shù)組排序類ArraySortUtil用法實例
- php數(shù)組(array)輸出的三種形式詳解
- php array_filter除去數(shù)組中的空字符元素
- php數(shù)組函數(shù)序列之array_keys() - 獲取數(shù)組鍵名
- php array_flip() 刪除數(shù)組重復元素
- php數(shù)組函數(shù)序列之array_key_exists() - 查找數(shù)組鍵名是否存在
- php數(shù)組查找函數(shù)in_array()、array_search()、array_key_exists()使用實例
- php in_array() 檢查數(shù)組中是否存在某個值詳解
- PHP數(shù)組array類常見操作示例
相關文章
完美解決php 導出excle的.csv格式的數(shù)據(jù)時亂碼問題
下面小編就為大家?guī)硪黄昝澜鉀Qphp 導出excle的.csv格式的數(shù)據(jù)時亂碼問題。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-02-02用js進行url編碼后用php反解以及用php實現(xiàn)js的escape功能函數(shù)總結
這次第一次用smarttemplate這個模板,比smarty小巧了很多,但也有些不方便的地方。2010-02-02PHP隱形一句話后門,和ThinkPHP框架加密碼程序(base64_decode)
今天一個客戶的服務器頻繁被寫入一句話后門,刪除了還有,原來在程序中加入了如下代碼,大家可以注意下base64_decode函數(shù)的參數(shù)。2011-11-11mysql_connect localhost和127.0.0.1的區(qū)別(網(wǎng)絡層闡述)
這篇文章主要介紹了mysql_connect localhost和127.0.0.1的區(qū)別(網(wǎng)絡層闡述),本文從網(wǎng)絡通信層面講解了它們的不同,需要的朋友可以參考下2015-03-03在WordPress的后臺中添加頂級菜單和子菜單的函數(shù)詳解
這篇文章主要介紹了在WordPress的后臺中添加頂級菜單和子菜單的函數(shù)詳解,需要的朋友可以參考下2016-01-01