配列から現在のキーと値のペアを返して、カーソルを進める

# each

(PHP 4, PHP 5, PHP 7)

each — 配列から現在のキーと値のペアを返して、カーソルを進める

警告

この関数は PHP 7.2.0 で 非推奨 になり、PHP 8.0.0 で 削除 されました。この関数に頼らないことを強く推奨します。

### 説明

function each(array|object `&$array`): array

配列から現在のキーと値のペアを返して、カーソルを進めます。

each() を実行した後、配列カーソルは、 配列の次の要素に移動します。配列の最終要素にカーソルがある場合は、 最終要素にとどまります。再度 each を使用して配列を走査するには、 reset() を使用する必要があります。

### パラメータ

`array`

  入力の配列。

### 戻り値

配列 `array` から現在のキーと値のペアを返します。 このペアは 4 つの要素を持つ配列で、 それぞれの要素は `0`, `1`, `key`, `value` というキーを有しています。 要素 `0`と`key` の各々は配列要素のキー名称を保持しており、`1` と `value` の各々はそのデータを保持しています。

配列の内部ポインタが配列の最終要素以降を指す場合、 each() は `false` を返します。

### 例

例1 each() の例

    <?php
    $foo = array("bob", "fred", "jussi", "jouni", "egon", "marliese");
    $bar = each($foo);
    print_r($bar);
    ?>

`$bar` は、ここでは以下のキー/値のペアを保持しています。

    Array
    (
        [1] => bob
        [value] => bob
        [0] => 0
        [key] => 0
    )

    <?php
    $foo = array("Robert" => "Bob", "Seppo" => "Sepi");
    $bar = each($foo);
    print_r($bar);
    ?>

$bar は次のようなキー/値のペアを持つようになります。

    Array
    (
        [1] => Bob
        [value] => Bob
        [0] => Robert
        [key] => Robert
    )

通常 each() は、配列の走査をするために list() と共に使用します。 例えばこのようになります。

例2 each() によって配列を走査する

    <?php
    $fruit = array('a' => 'apple', 'b' => 'banana', 'c' => 'cranberry');

    reset($fruit);
    while (list($key, $val) = each($fruit)) {
        echo "$key => $val\n";
    }
    ?>

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

    a => apple
    b => banana
    c => cranberry

警告

配列を他の変数に代入すると、もとの配列の内部ポインタがリセットされます。 そのため、上の例のループ内で $fruit を他の変数に代入すると、無限ループを引き起こしてしまいます。

警告

each() をオブジェクトに対して使用することもできますが、 予期せぬ結果を返すことになるかもしれません。 オブジェクトのプロパティを each() で反復処理することはおすすめしません。

### 参考

- key() - 配列からキーを取り出す
- list() - 配列と同様の形式で、複数の変数への代入を行う
- current() - 配列内の現在の要素を返す
- reset() - 配列の内部ポインタを先頭の要素にセットする
- next() - 配列の内部ポインタを進める
- prev() - 内部の配列ポインタをひとつ前に戻す
- `foreach`
- オブジェクトのイタレーション

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