[1=>0]+[2=>0]
会产生[1=>0,2=>0]
。但是对于[1]+[2]
使用这种语法糖是否有任何技巧。那么[1]+[2]
yeilds [1,2]
?
注意:我关心的是这种语法,而不是其他相关的PHP函数。
答案 0 :(得分:5)
请改用array_merge()。我难以理解+
与阵列一起使用的奇怪行为,我承诺永远不再使用它。
答案 1 :(得分:5)
+
是数组union运算符,它将跳过现有键。
你想要array_merge()
在你的例子中将它们连接起来(对于带有数字键的数组,它会这样做。)
不幸的是,没有办法让+
运算符超载以执行任何不同的操作。
答案 2 :(得分:1)
这是因为 +
是union运算符。它不会附加或合并。
[1] is array(0=>1);
[2] is array(0=>2);
如果你结合它将成为array(0=>1)
,因为0
密钥已存在于第一个数组中。
没有语法糖来做。但是,你可以尝试这个
[1]+[1=>2]
或其他丑陋的表达
[1]+[count([1])=>2]
语法上[1]+[2] == [1,2]
根本没有意义。那是python的东西。