一、数组函数
array_merge($a, $b, ..., $n)
合并多个数组
$b
的优先级高于$a
,即$b
会覆盖$a
中具有相同键名的值(除数字键名)。若是多维数组,不管几维,第二维的值都会被最后面具有相同键名的值所覆盖。
- 所有数字键的值不覆盖,而是将键名以自然数顺序重新索引
- 如果只传一个参数,则数字键名将会重新索引
例:
$a = [
2 => 'a',
'100a' => [0 => 'a', 'a' => ['v' => 1, 1 => 'a']],
1 => ['a' => 1,2,3]
];
$b = [
0 => 1,
'100a' => ['b' => 1, 0 => 'ab', 'a' => ['b' => 2, 'n' => 3]],
'100b' => 3,
1 => ['a' => 123]
];
$c = array_merge($a, $b);
$c = [
0 =>'a',
'100a' => ['b' => 1, 0 => 'ab', 'a' => ['b' => 2, 'n' => 3]],
1 => ['a' => 1,2,3],
2 => 1,
'100b' => 3,
3 => ['a' => 123]
];
Tips: array_merge_recursive()
功能相似,该函数不覆盖相同键名,而是递归创建一个数组(键名相同,但数字除外), 且若是多维数组,同一个数组下数字键名不重新索引,后一个数字的键名会按前一个的最大数字向后重新索引
更多内容,参考 w3school