PHP 配列に特定のキーがセットされているか調べる

PHP 配列に特定のキーまたは添字がセットされているか調べるには、[array_key_exists]または[isset]を使用します。

[adsense1]

使用例

array_key_exists('key', $array);
isset($array['key']);

array_key_exists と isset の違い

配列の要素が null の場合、array_key_exists と isset で返り値が異なります。
isset の場合は、指定したキーが存在していても、その値が null であれば[false]を返します。
array_key_exists の場合は、値が null であっても、キーが存在していれば[true]を返します。

なお、チェックするスピードについては isset のほうが速いようです。
これは、isset は指定したキーの要素がセットしているかどうかだけをチェックするためであると思われます。

$prefs = array(
    'hokkaido' => '札幌市',
    'aomori' => '青森市',
    'iwate' => '盛岡市',
    'monolio' => null,
);

// $prefs に hokkaido というキーが存在するので true を返す。
var_dump(array_key_exists('hokkaido', $prefs)); // true
var_dump(isset($prefs['hokkaido']));            // true

// monolio というキーは存在するが、値が null なので isset では false を返す。
var_dump(array_key_exists('monolio', $prefs)); // true
var_dump(isset($prefs['monolio']));            // false

[adsense2]

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください