本篇文章給大家介紹一下PHP中用+號連接數(shù)組的方法。有一定的參考價值,有需要的朋友可以參考一下,希望對大家有所幫助。
PHP中用+號連接數(shù)組的結(jié)果是?
我們在開發(fā)中,有時候會將兩個數(shù)組合并連接起來,這個時候要注意了,千萬不要偷懶直接使用+號哦,為什么呢?我們看看以下代碼:
$a = [1, 2]; $b = [4, 5, 6]; $c = $a + $b; print_r($c);
請用第一直接告訴我它的結(jié)果是什么?或許我這么問你應(yīng)該能猜到,它的結(jié)果是:
Array ( [0] => 1 [1] => 2 [2] => 6 )
看出來了吧,用+號操作符連接的數(shù)組,結(jié)果取的是并集。也就是根據(jù)鍵,相同鍵的不會覆蓋,沒有鍵加入進來形成一個新數(shù)組。并不是將兩個數(shù)組真的加起來。
如果我們用$b+$a呢?那么結(jié)果就是$b的內(nèi)容。
$c = $b + $a; print_r($c); Array ( [0] => 4 [1] => 5 [2] => 6 )
那么我們要獲得1,2,4,5,6這樣一個數(shù)組要怎么辦呢?沒錯,使用array_merge()函數(shù),請注意數(shù)組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數(shù)組呢?結(jié)果也是一樣的,$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數(shù)組,使用array_merge()函數(shù)的結(jié)果和使用+號的結(jié)果是一樣的,這是因為他們還是進行了鍵的對比。所以合并后的數(shù)組不會增加內(nèi)容,如果是未定義下標的則會直接以數(shù)字下標添加進去。
最后,我們再試試.操作符的連接:
$c = $a . $b; print_r($c); ArrayArray
好吧,強轉(zhuǎn)成string類型的字符串再拼接起來了,并無特別的意義。
測試代碼:
https://github.com/zhangyue0503/dev-blog/blob/master/php/201911/source/PHP%E4%B8%AD%E7%94%A8%2B%E5%8F%B7%E8%BF%9E%E6%8E%A5%E6%95%B0%E7%BB%84%E7%9A%84%E7%BB%93%E6%9E%9C%E6%98%AF%EF%BC%9F.php
推薦學(xué)習(xí):php視頻教程