$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()合併陣列會把前乙個陣列中關聯形式陣列的鍵值相同的覆蓋,索引形式的則按鍵值順序合併在一起)
1.先用array_merge_recursive()函式來合併一下:
$a = array('color'=>'red',5,6);
$b = array('color'=>'blue','type'=>'fruit',6,7);
$arr = array_merge_recursive($a,$b);
var_dump($arr);
輸出結果:
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
從結果可以看出array_merge_recursive()函式會把鍵值相同的值以乙個新的關聯陣列的形式返回,並以這個鍵值作為二維陣列的鍵值,其他索引形式則不會受影響。
比起array_merge()的話就不會出現後面的陣列鍵和前乙個相同就把前乙個的值覆蓋的情況了。
2.再看下『+』號合併陣列的情況:
$a = array('color'=>'red',5,6);
$b = array('color'=>'blue','type'=>'fruit',6,7);
$arr = $a+$b;
var_dump($arr);
輸出結果:
array (size=4)
'color' => string 'red' (length=3)
0 => int 5
1 => int 6
'type' => string 'fruit' (length=5)
從這個結果可以看出,使用『+』號合併陣列,是前面覆蓋後面的,和array_merge()相反,而且它比array_merge()更狠,如果以索引形式出現的陣列的內容,合併後如果鍵值相同也會覆蓋掉!
以上是我個人總結,本人入行不久,火候欠佳,如有總結不到位地方請各位高手批評指正,一定虛心接納!
php建立陣列的幾種方法
第1種格式 陣列名稱 array 值 值 值 此種格式沒有指定陣列內元素的鍵,php 會自動以數字的形式建立鍵,從 0 開始,依次累加。呼叫陣列的格式 陣列名稱 數字型鍵 arr array a b c echo arr 1 輸出 第2種格式 陣列名稱 值 陣列名稱 值 陣列名稱 值 此種格式同樣沒...
PHP中陣列定義的幾種方法
array 陣列 php 中的陣列實際上是乙個有序對映。對映是一種把 values 關聯到 keys 的型別。此型別在很多方面做了優化,因此可以把它當成真正的陣列,或列表 向量 雜湊表 是對映的一種實現 字典,集合,棧,佇列以及更多可能性。由於陣列元素的值也可以是另乙個陣列,樹形結構和多維陣列也是允...
PHP遍歷陣列的幾種方法
這三種方法中效率最高的是使用foreach語句遍歷陣列。從php4開始就引入了foreach結構,是php中專門為遍歷陣列而設計的語句,推薦大家使用。先分別介紹這幾種方法 php中遍歷陣列有三種常用的方法 一 使用for語句迴圈遍歷陣列 二 使用foreach語句遍歷陣列 三 聯合使用list ea...