看看这段代码:
$a = array('1'=>'1');
$b = array(''=>'');
var_dump(array_merge($a,$b));
Run Code Online (Sandbox Code Playgroud)
输出对我来说真的很奇怪:
array(2) {
[0] =>
string(1) "1"
'' =>
string(0) ""
}
Run Code Online (Sandbox Code Playgroud)
好的,我已经改变$a了:$a = array('k'=>'v');输出变得更加可预测:
array(2) {
'k' =>
string(1) "v"
'' =>
string(0) ""
}
Run Code Online (Sandbox Code Playgroud)
问题是:为什么第一个元素的关键0在第一个例子中?
编辑:
var_dump($a);
array(1) {
[1] =>
string(1) "1"
}
Run Code Online (Sandbox Code Playgroud)
带有数字键的输入数组中的值将使用从结果数组中的零开始的递增键重新编号.
是的,在这种情况下,将数字字符串值视为数值是PHP的特质.您可能想要使用$a + $b.