Home >Backend Development >PHP Problem >What is the result of using + sign to concatenate arrays in PHP?

What is the result of using + sign to concatenate arrays in PHP?

醉折花枝作酒筹
醉折花枝作酒筹forward
2021-06-11 18:04:202481browse

This article will introduce to you how to use numbers to connect arrays in PHP. It has certain reference value. Friends in need can refer to it. I hope it will be helpful to everyone.

What is the result of using + sign to concatenate arrays in PHP?

#What is the result of using numbers to connect arrays in PHP?

When we are developing, we sometimes merge and connect two arrays. At this time, we should pay attention. Don't be lazy and use numbers directly. Why? Let's take a look at the following code:

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

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

Please tell me directly what its result is using the first one? Maybe you can guess when I ask this, the result is:

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

As you can see, the result of the arrays connected using the sign operator is the union. That is, according to the key, the same key will not be overwritten, and no key will be added to form a new array. It's not really adding the two arrays.

What if we use $b $a? Then the result is the content of $b.

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

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

So what should we do if we want to get an array like 1,2,4,5,6? That's right, when using the array_merge() function, please pay attention to the position of the array 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
)

What if it is a Hash array in the form of key/value? The result is the same, no keys in $a will be merged, and the same keys will not be processed.

$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
)

For the above Hash array, the result of using the array_merge() function is the same as the result of using the number. This is because they still compare the keys. Therefore, the merged array will not add content. If the subscript is not defined, it will be added directly with a numeric subscript.

Finally, let’s try again. Operator connection:

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

ArrayArray

Okay, there is no special meaning in converting strings into string types and then splicing them together.

Test code:

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

Recommended learning: php video tutorial

The above is the detailed content of What is the result of using + sign to concatenate arrays in PHP?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:segmentfault.com. If there is any infringement, please contact admin@php.cn delete