Two methods and differences of array merging in PHP are introduced
- 2020-05-24 05:15:41
- OfStack
PHP array merge two methods and differences
If it's an associative array, here's what it looks like:
1. array_merge, if two arrays have the same key, the last one will override the first one
2. "+" operator. If two arrays have the same key, the first one overrides the last one
If it is a numerically indexed array, it is as follows:
1. array_merge. The effect is similar to the code foreach for each array element, and then pushes each element into a new stack
Output:
array (
0 = > '1111111',
1 = > '222222222',
2 = > '33333333333',
3 = > '444444444',
)
array (
0 = > '33333333333',
1 = > '444444444',
2 = > '1111111',
3 = > '222222222',
)
2. "+" operator. The effect is similar to the code foreach for each array element, and then each element is pushed into a new stack. If the same key already exists, it is not processed
Output:
array (
1 = > '1111111',
2 = > '222222222',
4 = > '33333333333',
)
array (
4 = > '33333333333',
1 = > '444444444',
2 = > '222222222',
)
If it's an associative array, here's what it looks like:
$a = array(
'where' => 'uid=1',
'order' => 'uid',
);
$b = array(
'where' => 'uid=2',
'order' => 'uid desc',
);
1. array_merge, if two arrays have the same key, the last one will override the first one
<?php
$c = array_merge($a, $b);
var_export($c);// The result is the same as the original $b The same
$d = array_merge($b, $a);
var_export($d);// The result is the same as the original $a The same
2. "+" operator. If two arrays have the same key, the first one overrides the last one
<?php
$c = $a + $b;
var_export($c);// The result is the same as the original $a The same
$d = $b + $a;
var_export($d);// The result is the same as the original $b The same
If it is a numerically indexed array, it is as follows:
$a = array(
1 => '1111111',
2 => '222222222'
);
$b = array(
4 => '33333333333',
1 => '444444444'
);
1. array_merge. The effect is similar to the code foreach for each array element, and then pushes each element into a new stack
<?php
$c = array_merge($a, $b);
var_export($c);
$d = array_merge($b, $a);
var_export($d);
Output:
array (
0 = > '1111111',
1 = > '222222222',
2 = > '33333333333',
3 = > '444444444',
)
array (
0 = > '33333333333',
1 = > '444444444',
2 = > '1111111',
3 = > '222222222',
)
2. "+" operator. The effect is similar to the code foreach for each array element, and then each element is pushed into a new stack. If the same key already exists, it is not processed
<?php
$c = $a + $b;
var_export($c);
$d = $b + $a;
var_export($d);
Output:
array (
1 = > '1111111',
2 = > '222222222',
4 = > '33333333333',
)
array (
4 = > '33333333333',
1 = > '444444444',
2 = > '222222222',
)