咱們在開發中,有時候會將兩個數組合並鏈接起來,這個時候要注意了,千萬不要偷懶直接使用+號哦,爲何呢?咱們看看如下代碼:php
$a = [1, 2]; $b = [4, 5, 6]; $c = $a + $b; print_r($c);
請用第一直接告訴我它的結果是什麼?或許我這麼問你應該能猜到,它的結果是:git
Array ( [0] => 1 [1] => 2 [2] => 6 )
看出來了吧,用+號操做符鏈接的數組,結果取的是並集。也就是根據鍵,相同鍵的不會覆蓋,沒有鍵加入進來造成一個新數組。並非將兩個數組真的加起來。github
若是咱們用$b+$a呢?那麼結果就是$b的內容。數組
$c = $b + $a; print_r($c); Array ( [0] => 4 [1] => 5 [2] => 6 )
那麼咱們要得到1,2,4,5,6這樣一個數組要怎麼辦呢?沒錯,使用array_merge()函數,請注意數組Key的位置:微信
$c = array_merge($a, $b); print_r($c); Array ( [0] => 1 [1] => 2 [2] => 4 [3] => 5 [4] => 6 ) $c = array_merge($b, $a); print_r($c); Array ( [0] => 4 [1] => 5 [2] => 6 [3] => 1 [4] => 2 )
若是是key/value形式的Hash數組呢?結果也是同樣的,$a中沒有鍵將合併過來,相同的鍵將不處理。函數
$a = ['a' => 1, 'b' => 2]; $b = ['a' => 4, 'b' => 5, 'c' => 6]; print_r($a+$b); Array ( [a] => 1 [b] => 2 [c] => 6 ) $c = array_merge($a, $b); print_r($c); $c = array_merge($b, $a); print_r($c); Array ( [a] => 1 [b] => 2 [c] => 6 ) Array ( [a] => 4 [b] => 5 [c] => 6 ) Array ( [a] => 1 [b] => 2 [c] => 6 )
上述Hash數組,使用array_merge()函數的結果和使用+號的結果是同樣的,這是由於他們仍是進行了鍵的對比。因此合併後的數組不會增長內容,若是是未定義下標的則會直接以數字下標添加進去。學習
最後,咱們再試試.操做符的鏈接:測試
$c = $a . $b; print_r($c); ArrayArray
好吧,強轉成string類型的字符串再拼接起來了,並沒有特別的意義。.net
關注公衆號:【硬核項目經理】獲取最新文章
添加微信/QQ好友:【xiaoyuezigonggong/149844827】免費得PHP、項目管理學習資料
知乎、公衆號、抖音、頭條搜索【硬核項目經理】
B站ID:482780532