日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

PHP中用+號(hào)連接數(shù)組的結(jié)果是?

 硬核項(xiàng)目經(jīng)理 2021-05-31

PHP中用+號(hào)連接數(shù)組的結(jié)果是?

我們?cè)陂_發(fā)中,有時(shí)候會(huì)將兩個(gè)數(shù)組合并連接起來,這個(gè)時(shí)候要注意了,千萬不要偷懶直接使用+號(hào)哦,為什么呢?我們看看以下代碼:


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

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

請(qǐng)用第一直接告訴我它的結(jié)果是什么?或許我這么問你應(yīng)該能猜到,它的結(jié)果是:


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

看出來了吧,用+號(hào)操作符連接的數(shù)組,結(jié)果取的是并集。也就是根據(jù)鍵,相同鍵的不會(huì)覆蓋,沒有鍵加入進(jìn)來形成一個(gè)新數(shù)組。并不是將兩個(gè)數(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這樣一個(gè)數(shù)組要怎么辦呢?沒錯(cuò),使用array_merge()函數(shù),請(qǐng)注意數(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é)果和使用+號(hào)的結(jié)果是一樣的,這是因?yàn)樗麄冞€是進(jìn)行了鍵的對(duì)比。所以合并后的數(shù)組不會(huì)增加內(nèi)容,如果是未定義下標(biāo)的則會(huì)直接以數(shù)字下標(biāo)添加進(jìn)去。

最后,我們?cè)僭囋?操作符的連接:


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

ArrayArray

好吧,強(qiáng)轉(zhuǎn)成string類型的字符串再拼接起來了,并無特別的意義。

測(cè)試代碼: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

參考文檔:https://www./manual/zh/language.operators.array.php

    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多