使用 array_merge 可以合并数组,其实 + 号也可以,虽然都是合并数组,这两个方法各有区别。
使用 array_merge 合并非关联数组时,不会过滤重复项目, + 会(更像是替换)
>>> $a = [1,2,3]
=> [
1,
2,
3,
]
>>> $b = [2,3,4]
=> [
2,
3,
4,
]
>>> array_merge($a,$b)
=> [
1,
2,
3,
2,
3,
4,
]
>>> $a + $b
=> [
1,
2,
3,
]
使用 array_merge 合并关联数组时,如果键重复,将会保留最后一个数组的值,而使用 + 将会保留第一个键下面的值。
>>> $a = ['name'=>'Jack','sex'=>1,'age'=>18];
=> [
"name" => "Jack",
"sex" => 1,
"age" => 18,
]
>>> $b = ['name'=>'Jack','age'=>'18','sex'=>'1'];
=> [
"name" => "Jack",
"age" => "18",
"sex" => "1",
]
>>> array_merge($a, $b)
=> [
"name" => "Jack",
"sex" => "1",
"age" => "18",
]
>>> $a + $b
=> [
"name" => "Jack",
"sex" => 1,
"age" => 18,
]
当关联数组中存在数字键时, array_merge 会重置数字键, + 则不会
>>> $a = ['name'=>'Jack','sex'=>1,'age'=>18];
=> [
"name" => "Jack",
"sex" => 1,
"age" => 18,
]
>>> $b = ['name'=>'Jack','age'=>'18','sex'=>'1','10'=>'hi'];
=> [
"name" => "Jack",
"age" => "18",
"sex" => "1",
10 => "hi",
]
>>> array_merge($a,$b)
=> [
"name" => "Jack",
"sex" => "1",
"age" => "18",
//注意这里
0 => "hi",
]
>>> $a + $b
=> [
"name" => "Jack",
"sex" => 1,
"age" => 18,
//注意这里
10 => "hi",
]