测试代码
<?php
$cfg = [
0 => 'cfg-1',
1 => 'cfg-1',
'name' => 'hlq',
'age' => 18,
'job' => 'engineer'
];
$default = [
0 => 'default-0',
1 => 'default-1',
'name' => 'hlq',
'age' => 16,
'hobby' => 'readding'
];
var_dump($cfg + $default);
var_dump(array_merge($cfg, $default));
运行结果
array(6) {
[0]=>
string(5) "cfg-1"
[1]=>
string(5) "cfg-1"
["name"]=>
string(3) "hlq"
["age"]=>
int(18)
["job"]=>
string(8) "engineer"
["hobby"]=>
string(8) "readding"
}
array(8) {
[0]=>
string(5) "cfg-1"
[1]=>
string(5) "cfg-1"
["name"]=>
string(3) "hlq"
["age"]=>
int(16)
["job"]=>
string(8) "engineer"
[2]=>
string(9) "default-0"
[3]=>
string(9) "default-1"
["hobby"]=>
string(8) "readding"
}
结论
- array_merge和 ‘+’ 都可以合并数组
- array_merge会对相同字符串键名,用后面的数据重写数据,而加号不会
- array_merge对数字键名数据不会重写,而是根据数字键名接着写入数据,而加号会用前面的数字键名重写后面的