foreach
foreach (iterable_expression as $value) {
statement_list
}
foreach (iterable_expression as $key => $value) {
statement_list
}
最初の形式は、
2番目の形式は、さらに各反復で現在の要素のキーを変数
オブジェクトの反復処理をカスタマイズ することもできます。 例1 一般的な 上の例の出力は以下となります。 Value only Current element of $array: 1. Current element of $array: 2. Current element of $array: 3. Current element of $array: 17. Key and value: Key: one => Value: 1 Key: two => Value: 2 Key: three => Value: 3 Key: seventeen => Value: 17 Multi-dimensional key-value arrays: Value at position x=0 and y=0: a Value at position x=1 and y=0: b Value at position x=0 and y=1: y Value at position x=1 and y=1: z Dynamic arrays: 1 2 3 4 5
ネストした配列のアンパック
配列の配列を反復処理し、
ネストした配列をループ変数に展開させることができます。
配列の分解
を
以下の例は両方、
上の例の出力は以下となります。 A: 1; B: 2 A: 3; B: 4 配列の要素より少ない変数が指定された場合、 残りの要素は無視されます。 同様に、以下のようにしてカンマを使うことで要素をスキップできます: 上の例の出力は以下となります。 1 2 3 4 5 6 以下のように、list を埋めるだけの十分な要素数が配列にない場合、警告が発生します: 上の例の出力は以下となります。 Notice: Undefined offset: 2 in example.php on line 7 A: 1; B: 2; C: Notice: Undefined offset: 2 in example.php on line 7 A: 3; B: 4; C: foreach とリファレンス
ループ中で、
上の例の出力は以下となります。
array(4) {
[0]=>
int(2)
[1]=>
int(4)
[2]=>
int(6)
[3]=>
&int(8)
}
警告
配列の最後の要素の 上の例の出力は以下となります。
array(4) {
[0]=>
int(2)
[1]=>
int(4)
[2]=>
int(6)
[3]=>
&int(8)
}
Another loop:
0 => 2
1 => 4
2 => 6
3 => 6
array(4) {
[0]=>
int(2)
[1]=>
int(4)
[2]=>
int(6)
[3]=>
&int(6)
}
例2 定数の配列の値を、リファレンスで反復処理する 上の例の出力は以下となります。 2 4 6 8 |