指定したキーまたは添字が配列にあるかどうかを調べる

# array_key_exists

(PHP 4 >= 4.0.7, PHP 5, PHP 7)

array_key_exists — 指定したキーまたは添字が配列にあるかどうかを調べる

### 説明

array_key_exists ( mixed `$key` , array `$array` ) : bool

指定した `key` が配列に設定されている場合、 array_key_exists() は `TRUE` を返します。 `key` は配列添字として使用できる全ての値を使用可能です。

### パラメータ

`key`

  調べる値。

`array`

  キーが存在するかどうかを調べたい配列。

### 返り値

成功した場合に `TRUE` を、失敗した場合に `FALSE` を返します。

> 注意:

> array_key_exists() は、最初のレベルのキーだけを捜します。 多次元配列のネストされたキーは、この関数では見つけられません。

### 例

例1 array_key_exists() の例

`<?php
$search_array = array('first' => 1, 'second' => 4);
if (array_key_exists('first', $search_array)) {
echo "この配列には 'first' という要素が存在します";
}
?>`

例2 array_key_exists() 対 isset()

isset() は `NULL` 値を持つ配列キーに対して `TRUE` を返しません。一方、array_key_exists() は `TRUE` を返します。

`<?php
$search_array = array('first' => null, 'second' => 4);
// false を返します
isset($search_array['first']);
// true を返します
array_key_exists('first', $search_array);
?>`

### 注意

> 注意:

> 過去との互換性を保つため、`key` が仮に `array` で指定したオブジェクトのプロパティであっても array_key_exists() は `TRUE` を返します。 しかし、この挙動に頼ってはいけません。 `array` にはオブジェクトではなく配列を渡すようにしましょう。

> オブジェクトのプロパティが存在するかどうかを調べるには、 property_exists() を使いましょう。

### 参考

- isset() - 変数がセットされていること、そして NULL でないことを検査する
- array_keys() - 配列のキーすべて、あるいはその一部を返す
- in_array() - 配列に値があるかチェックする
- property_exists() - オブジェクトもしくはクラスにプロパティが存在するかどうかを調べる