为什么/如何在PHP中使用+加入数组?

时间:2010-03-09 12:17:41

标签: php arrays

我最近在PHP中注意到你可以做到这一点。

$myNewArray = $oldArray + $someArray;

这看起来与我之前在PHP中操作数组时所看到的完全不同。

它是如何以及为何有效?有没有陷阱?

我最近开始在我可能使用array_unshift()array_merge()的某些地方使用它。

3 个答案:

答案 0 :(得分:8)

如有疑问,consult the documentation。行为与array_merge不同:array_merge追加/覆盖,+仅附加。

示例:

<?php
$a = Array('foo'=>'bar','baz'=>'quux');
$b = Array('foo'=>'something else','xyzzy'=>'aaaa');

$c = $a + $b;
$d = array_merge($a,$b);

print_r($c);
print_r($d);

输出 - 如你所见,array_merge用$ b ['foo']覆盖$ a ['foo']的值。 $ a + $ b没有:

Array
(
    [foo] => bar
    [baz] => quux
    [xyzzy] => aaaa
)
Array
(
    [foo] => something else
    [baz] => quux
    [xyzzy] => aaaa
)

答案 1 :(得分:2)

当两个操作数都是数组时,编译器中为+定义了一个操作。它可以直观地加入它们。

答案 2 :(得分:1)

其中一个陷阱是当其中一个变量不是数组时会发生什么。

array_merge:

Warning: array_merge(): Argument #2 is not an array in ...

+ - 操作者:

Fatal error: Unsupported operand types in ...