Blogaomu

WEBアプリケーション開発とその周辺のメモをゆるふわに書いていきます。

PHPの配列でキーが重複した場合

PHPの配列でキーが重複すると、最後に指定した要素がそれまでの値を上書きするそうな。

配列の宣言時に同じキーで複数の要素を指定すると、 最後に指定したものがそれまでの値を上書きします。 PHP: 配列 – Manual

<?php
$arr = array(
    "foo"  => "bar",
    "foo"  => "baz",
    "hoge" => "fuga",
);
var_dump($arr);

このスクリプトを実行すると以下のような結果になります。

array(2) {
  ["foo"]=>
  string(3) "baz"
  ["hoge"]=>
  string(4) "huga"
}

キーが"foo"で値が"bar"の要素が、後から指定したキーが"foo"の値"baz"で上書きされていることが分かります。考えてみれば当然のような感じがしますが、キーが定数だったり整数だったりしたときにふと忘れがちになるので(というか実際に同じキーが設定されていて要素数が一つ少なくなっていたことの原因が分からず時間を費やしてしまったので…)、今度から気をつけます。