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

# array_key_exists

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

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

### 説明

function array_key_exists(string|int|float|bool|resource|null `$key`, array `$array`): bool

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

### パラメータ

`key`

  調べる値。

`array`

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

### 戻り値

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

> 注意:

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

### 変更履歴

バージョン | 説明
--- | ---
8.5.0 | `key` パラメータに null を指定することは、推奨されなくなりました。 代わりに、空文字列を使ってください。
8.0.0 | `key` パラメータは bool, float, int, null, resource, string を引数として受け入れるようになりました。
8.0.0 | `array` に object を渡すことは、 サポートされなくなりました。
7.4.0 | `array` に object を渡すことは、 推奨されなくなりました。 property_exists() を代わりに使ってください。

### 例

例1 array_key_exists() の例

    <?php
    $searchArray = ['first' => 1, 'second' => 4];
    var_dump(array_key_exists('first', $searchArray));
    ?>

上の例の出力は以下となります。

    bool(true)

例2 array_key_exists() 対 isset()

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

    <?php
    $searchArray = ['first' => null, 'second' => 4];

    var_dump(isset($searchArray['first']));
    var_dump(array_key_exists('first', $searchArray));
    ?>

上の例の出力は以下となります。

    bool(false)
    bool(true)

### 参考

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

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open