1

このコードを見てください:

$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"
}
4

1 に答える 1

6

数値キーを持つ入力配列の値は、結果配列のゼロから始まるインクリメント キーで再番号付けされます。

http://php.net/array_merge

はい、この場合、数値文字列値を数値として扱うのは PHP の特異性です。$a + $b代わりに使用することもできます。

于 2012-08-10T08:11:07.273 に答える