首頁 >後端開發 >PHP問題 >PHP中用+號連接數組的結果是什麼?

PHP中用+號連接數組的結果是什麼?

醉折花枝作酒筹
醉折花枝作酒筹轉載
2021-06-11 18:04:202489瀏覽

這篇文章跟大家介紹一下PHP中用 號連接陣列的方法。有一定的參考價值,有需要的朋友可以參考一下,希望對大家有幫助。

PHP中用+號連接數組的結果是什麼?

PHP中用 號連接陣列的結果是?

我們在開發中,有時會將兩個數字組合併連接起來,這個時候要注意了,千萬不要偷懶直接使用 號哦,為什麼呢?我們看看以下程式碼:

$a = [1, 2];
$b = [4, 5, 6];

$c = $a + $b;
print_r($c);

請用第一個直接告訴我它的結果是什麼?或許我這麼問你應該可以猜到,它的結果是:

Array
(
    [0] => 1
    [1] => 2
    [2] => 6
)

看出來了吧,用 號運算子連接的數組,結果取的是並集。也就是根據鍵,相同鍵的不會覆蓋,沒有鍵加入進來形成一個新數組。並不是將兩個數組真的加起來。

如果我們用$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類型的字串再拼接起來了,並無特別的意義。

測試程式碼:

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

推薦學習:php影片教學

#

以上是PHP中用+號連接數組的結果是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:segmentfault.com。如有侵權,請聯絡admin@php.cn刪除