合并没有array_merge的数组

时间:2013-01-17 13:43:42

标签: php arrays

这可以用这种方式合并多个数组而不是array_merge函数吗?

$defaults = array('a'=>'b');
$defaults .= array('c'=>'d');
print_r($defaults);?>

3 个答案:

答案 0 :(得分:4)

不,因为..=运算符仅对字符串进行操作。

运算符+可以在数组上运行,它的语义与array_merge略有不同。

数组加法的工作原理如下:

  

+运算符返回附加到左侧的右侧数组   阵列;对于存在于两个数组中的键,来自的数组   将使用左手数组,以及来自的匹配元素   右手阵列将被忽略。

array_merge的工作原理如下:

  

如果输入数组具有相同的字符串键,则后面的值   该密钥将覆盖前一个密钥。但是,如果是数组   包含数字键,后面的值不会覆盖原始值   值,但会附加。

答案 1 :(得分:3)

差不多,您需要+运算符:

$defaults = array('a'=>'b');
$defaults += array('c'=>'d');
print_r($defaults);

请注意,它的模式与array_merge略有不同,即它不会覆盖已定义的键/索引。

答案 2 :(得分:2)

试试这个:

$defaults = array('a'=>'b');
$defaults += array('c'=>'d');
print_r($defaults);