foreach の基本構文は次のとおりです:
FOREACH ($array_variable as $value)
{
[実行するコード]
}
または
FOREACH ($array_variable as $key => $value)
{
[どちらの場合も、$array_variable の配列要素の数に等しい複数の [コード実行] が実行されます。
例を見てみましょう。次のコード スニペットがあるとします。
コードをコピー コードは次のとおりです。
$array1 = array(1,2,3,4,5)
FOREACH ($array1 as $abc);
{
print "新しい値は " . $abc*10 . "
"
}
新しい値は 10
新しい値は 30
新しい値は 40新しい値は 50 です
上記の foreach ループは、配列 $array1 の 5 つの要素すべてを処理し、毎回配列要素の 10 倍の値を含むステートメントを出力します。
foreach の機能は、現在の配列のすべての値を走査し、それらを $var に割り当てることです
公式コード例:
コードをコピー
コードは次のとおりです:
php /* foreach 例 1: 値のみ */ $a = array(1, 2, 3, 17);
foreach ($a as $v) {
echo "$a の現在の値: $v.n";
}
/* foreach 例 2: value (説明のために印刷されたキー付き) */
$a = array(1, 2, 3, 17); /* 説明のみを目的としています */
foreach; ($a as $v) {
echo "$a[$i] => $v.n";
}
/* foreach 例 3: キーと値 */
$a = array(
" one" => 1、
" two" => 2、
"three" => 3、
"seventeen" => 17
);
foreach ($a as $k => $v) {
echo "$a[$k ] => $v.n";
}
/* foreach 例 4: 多次元配列 */
$a = array(); a";
$a[0 ][1] = "b";
$a[1][0] = "y";
$a[1][1] = "z";
foreach ($a as $v1) {
foreach ( $v1 as $v2) {
echo "$v2n";
}
}
/* foreach 例 5: 動的配列 */
foreach (array(1, 2, 3, 4, 5) as $v) {
echo "$vn";
?>
多次元データを操作する別の例を見てみましょう
コードをコピーします
:
$s = array(array(1,2), array(3,4),array(5,6));
foreach( $s as $v => $_v )
{ foreach( $_v as $vc =>vc ) { echo $ _vc[0],'|'.$_vc[1],'
'; } }
まず、foreach の構文を見てみましょう:
コードをコピーします
コードは次のとおりです:
foreach ($array as $key=>$value)
{
……
}
理解を容易にするために、ここでの $array は 1 次元であると仮定します。関連する配列の場合、$key は配列のインデックスであり、$value はこのインデックスの値です。これらの名前は任意に付けることができます。$key と $value と呼ばれる理由は、理解しやすいようにするためです。 foreach の動作プロセスをよりよく理解できるように、配列を作成しましょう: $array = array('first'=>'ibm','second'=>'hp'); ここでシミュレーションを行います。 PHP サービスは foreach を使用して $array を走査します:
コードをコピー
コードは次のとおりです:
foreach ($array as $key=>$value)
{
echo $key.'=> ;'
}
最初のループ、$key = 'first'、$value = 'ibm'、この時点で、実際の foreach は $array: next($array) に対して目に見えない操作を実行し、配列ポインターを前方に移動します (ここでは「forward」 " は PHP マニュアルと同じであり、私たちが通常理解している "forward" ではありません)。次に、echo ステートメントは「first=>ibm」を出力します。
2 番目のループでは、まず配列 $array の現在のポインターが配列の末尾に到達したかどうかを判断し、到達した場合はループを終了し、そうでない場合は 2 番目のループに入ります。もちろん、最初のループに入るときにもこのような判断が行われます。$array が空の配列の場合は、ループの下のステートメントが直接実行されます。このとき、$key = '秒'、'値' = 'hp'となり、next($array)の後には「秒=>hp」が出力されます。そして、配列ポインタが終端に達したと判断し、以下のステートメントが実行されます。
ここまでで foreach ループについてはある程度理解できたはずですよね?もう 1 つ注意すべき点は、foreach は実際に配列要素を操作するのではなく、毎回値を渡すだけであるということです。上記の例に特有の、各配列要素の後に文字列 'company' を追加する場合、$value .= 'company' 操作は機能しません。この時点では、配列要素の値は変更されません。 $array[$key] .= 'company'
詳細については、php foreach
php foreach、while パフォーマンス比較
php ループを参照してください。
http://www.bkjia.com/PHPjc/321830.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/321830.html技術記事 foreach の基本構文は次のとおりです。 FOREACH ($array_variable as $value) { [実行するコード] } または FOREACH ($array_variable as $key = $value) { [実行するコード] } どちらの場合も...