Php 数组合并异常行为

Php 数组合并异常行为,php,arrays,Php,Arrays,请看以下代码: $a = array('1'=>'1'); $b = array(''=>''); var_dump(array_merge($a,$b)); 输出对我来说真的很奇怪: array(2) { [0] => string(1) "1" '' => string(0) "" } 好的,我把$a改为:$a=array('k'=>v')和输出变得更可预测: array(2) { 'k' => string(1) "v" ''

请看以下代码:

$a = array('1'=>'1');
$b = array(''=>'');

var_dump(array_merge($a,$b));
输出对我来说真的很奇怪:

array(2) {
  [0] =>
  string(1) "1"
  '' =>
  string(0) ""
}
好的,我把
$a
改为:
$a=array('k'=>v')和输出变得更可预测:

array(2) {
  'k' =>
  string(1) "v"
  '' =>
  string(0) ""
}
问题是:在第一个示例中,为什么第一个元素的键是
0

编辑:

var_dump($a);
array(1) {
  [1] =>
  string(1) "1"
}

带有数字键的输入数组中的值将在结果数组中以从零开始递增的键重新编号

是的,在本例中,将数字字符串值视为数字值是PHP的一种特性。您可能想改用
$a+$b


带有数字键的输入数组中的值将在结果数组中以从零开始递增的键重新编号


是的,在本例中,将数字字符串值视为数字值是PHP的一种特性。您可能想改用
$a+$b

谢谢!实际上我已经在使用
+
,我只是想得到一个解释谢谢!实际上我已经在使用
+
,我只是想得到一个解释数字键将被重新编号!提示:
var\u dump($a)
给出了什么?@hakre,插入问题。是的,我知道第一个“1”被视为一个数字…数字键将被重新编号!提示:
var\u dump($a)
给出了什么?@hakre,插入问题。是的,我知道第一个“1”被视为一个数字。。。