each

(PHP 4, PHP 5, PHP 7)

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

警告

この関数は PHP 7.2.0 で 非推奨になります。この関数に頼らないことを強く推奨します。

説明

each ( array &$array ) : array

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

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

パラメータ

array

入力の配列。

返り値

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

配列の内部ポインタが配列の最終要素以降を指す場合、 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() で反復処理することはおすすめしません。

参考