PHPで配列のキーが存在するか調べる:array_key_exists(), isset()

PHPで配列のキーが存在するかどうか調べる方法を紹介します。

array_key_exists()を使って調べる

配列のキーが存在するかどうか調べるにはarray_key_exists()を使います。

array_key_exists()の記述方法は以下のとおりです。

bool array_key_exists(キー, 対象の配列);

この関数は指定したキーが配列内に存在している場合はTRUEを返し、存在しない場合はFALSEを返します。

以下は"Mike"というキーが配列内に存在するかどうか調べるプログラムの例です。

<?php
$array = array('Jhon' => 23, 'Mike' => 31);
if ( array_key_exists('Mike', $array) ) {
    echo "配列内にMikeというキーは存在します\n";
}
?>

上の例では"Mike"というキーが存在するので、array_key_exists()はTRUEを返します。

実行結果

配列内にMikeというキーは存在します

isset()を使って調べる

isset()は変数がセットされていて、それがNULLであるかどうか調べる関数です。isset()でも配列内にキーが存在しているか調べることができます。

bool isset(配列[キー])

この場合、配列にキーが存在している場合はTRUE、存在しない場合はFALSEを返します。ただし、指定したキーの要素がNULLの場合はFLASEを返すので注意してください。

以下は先ほどと同様に"Mike"というキーが配列内に存在するかどうか調べるプログラムの例です。

<?php
$array = array('Jhon' => 23, 'Mike' => 31);
if ( isset($array['Mike']) ) {
    echo "配列内にMikeというキーは存在し要素はNULLではありません\n";
}
?>

上の例では"Mike"というキーが存在するので、isset()はTRUEを返します。

実行結果

配列内にMikeというキーは存在し要素はNULLではありません

指定したキーの要素がNULLの場合

<?php
$array = array('Jhon' => 23, 'Mike' => NULL);
if ( isset($array['Mike']) ) {
    echo "配列内にMikeというキーは存在し要素はNULLではありません\n";
}
?>

この場合は"Mike"というキーは存在しますが、要素がNULLですので何も表示されません。