array_key_exists ではなく、isset を利用しても配列の存在チェックができる。
ただ両者では挙動に違いがあるので注意が必要。
サンプルコード
<?php
// array_key_exists と isset を利用した配列の存在チェック
function check($key, $array)
{
$ret1 = array_key_exists($key, $array) ? "Exist" : "Not Exist";
$ret2 = isset($array[$key]) ? "Exist" : "Not Exist";
echo "$key exist check : array_key_exists() = $ret1 / isset() = $ret2" . PHP_EOL;
}
$array = array("key1" => "value1", "key2" => null);
check("key1", $array);
check("key2", $array);
check("key3", $array);
実行結果
$ php test.php
key1 exist check : array_key_exists= Exist / isset= Exist
key2 exist check : array_key_exists= Exist / isset= Not Exist
key3 exist check : array_key_exists= Not Exist / isset= Not Exist
array_key_exists() は配列中にKey値が存在すれば値が何であろうがTRUEを返すが、
issetの場合、Key値が存在してもその値がNULLであった場合、FALSEを返す。