• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

PHP中用号连接数组的结果是

php 搞代码 3年前 (2022-03-01) 29次浏览 已收录 0个评论

咱们在开发中,有时候会将两个数组合并连接起来,这个时候要留神了,千万不要偷懒间接应用+号哦,为什么呢?咱们看看以下代码:

<code class="php">
$a = [1, 2];
$b = [4, 5, 6];

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

请用第一间接通知我它的后果是什么?或者我这么问你应该能猜到,它的后果是:

<code class="php">
Array
(
    [0] => 1
    [1] => 2
    [2] => 6
)

看进去了吧,用+号操作符连贯的数组,后果取的是并集。也就是依据键,雷同键的不会笼罩,没有键退出进来造成一个新数组。并不是将两个数组真的加起来。

如果咱们用$b+$a呢?那么后果就是$b的内容。

<code class="php">
$c = $b + $a;
print_r($c);

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

那么咱们要取得1,2,4,5,6这样一个数组要怎么办呢?没错,应用array_merge()函数,请留神数组Key的地位:

<code class="php">
$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中没有键将合并过去,雷同的键将不解决。

<code class="php">
$a = ['a' => 1, 'b' => 2];
$b = ['a' => 4, 'b' => 5, 'c' => 6];

print_r($a+$b);

Array
(
    [a] => 1
    [b] => 2
     => 6
)

$c = array_merge($a, $b);
print_r($c);

$c = array_merge($b, $a);
print_r($c);

Array
(
    [a] => 1
    [b] => 2
     => 6
)
Array
(
    [a] => 4
    [b] => 5
     => 6
)
Array
(
    [a] => 1
    [b] => 2
     => 6
)

上述Hash数组,应用array_merge()函数的后果和应用+号的后果是一样的,这是因为他们还是进行了键的比照。所以合并后的数组不会减少内容,如果是未定义下标的则会间接以数字下标增加进去。

最初,咱们再试试.操作符的连贯:

<code class="php">
$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

参考文档:https://www.php.net/manual/zh/language.operators.array.php

各自媒体平台均可搜寻【硬核项目经理】


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:PHP中用号连接数组的结果是

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址