配列を使用する場合、配列を走査する必要があることがよくあります。多くの場合、配列を反復処理して個々のキーまたは値を取得する (またはキーと値の両方を取得する) 必要があるため、当然のことながら、PHP はこの目的のためにいくつかの関数を提供します。多くの関数は、現在のポインター位置にあるキーまたは値を取得するだけでなく、ポインターを次の適切な位置に移動するという 2 つのタスクを実行します。
現在の配列キー key() を取得します
key() 関数は、input_array 内の現在のポインター位置にあるキーを返します。その形式は次のとおりです:
混合キー(配列配列)
次の例では、配列を反復処理してポインタを移動することにより、$fruits 配列のキーを出力します。
1 2 3 4 5 6 7
|
$fruits = array("リンゴ"=>"赤", "バナナ"=>"黄"); while ($key = key($fruits)) { printf("%s ", $key); 次($フルーツ); } //リンゴ //バナナ
|
現在の配列値を取得する current()
current() 関数は、配列内の現在のポインター位置にある配列値を返します。その形式は次のとおりです:
混合電流(アレイアレイ)
今回は配列値を取得したいと考えて、前の例を変更してみましょう。
2 3 4 5 6 7
|
$fruits = array("リンゴ"=>"赤", "バナナ"=>"黄");
while ($fruit = current($fruits)) { printf("%s 次($フルーツ); } //赤 //黄色
|
each() 関数は、input_array の現在のキーと値のペアを返し、ポインターを 1 位置進めます。その形式は次のとおりです:
配列それぞれ(配列配列)
返された配列には 4 つのキーが含まれ、キー 0 とキーにはキー名が含まれ、キー 1 と値には対応するデータが含まれます。 each() が実行される前にポインタが配列の末尾にある場合は、false が返されます。
2 3
|
$fruits = array("リンゴ", "バナナ", "オレンジ", "梨");
print_r (それぞれ($fruits) ); // Array ( [1] => apple [value] => apple [0] => 0 [key] => 0 )
|
2 3 4 5 6 7 8 9 10
| $fruits = array("リンゴ", "バナナ", "オレンジ", "梨");
リセット($フルーツ); while (list($key, $val) = each($fruits)) { echo "$key => $val "; } // 0 => リンゴ // 1 => バナナ // 2 => オレンジ // 3 => 梨
|