ホームページ  >  記事  >  バックエンド開発  >  PHP ループ学習 4: foreach ステートメントを使用して配列要素を走査および変更する方法

PHP ループ学習 4: foreach ステートメントを使用して配列要素を走査および変更する方法

青灯夜游
青灯夜游オリジナル
2021-07-29 14:03:465478ブラウズ

前回の記事「PHP ループ学習 3: for ループ ステートメントを使用して配列を走査する方法」では、for ループ ステートメントを理解し、for ループ ステートメントの実行プロセスを分析しました。コード例を通して for ループ文を使用して配列を走査する方法を紹介しました。 for ステートメントを使用して配列を走査する方法は少し複雑です。今日は、foreach ステートメントを使用して配列を走査し、配列内の要素を変更する方法を学習します。一緒に学びましょう。 !

foreach は、配列を走査するために特別に設計されたステートメントです。配列を走査するときによく使用されるメソッドです。配列を走査する際に非常に便利です。PHP5 以降では、オブジェクトを走査することもできます (foreach は配列にのみ適用できます)と反対します)。 (添付: PHP 関数配列配列関数のビデオ説明)

foreach ステートメントは配列を走査し、配列の添字とは何の関係もなく、不連続なインデックス配列や文字列の添字に使用できます。 . 連想配列。

foreach ステートメントの分析

まず、2 つの構文形式がある foreach ステートメントを見てみましょう。

文法形式 1:

foreach ($array as $value){
    语句块;
}

指定された $array 配列をトラバースし、現在の配列の値を各ループの $value## に割り当てます。

構文形式 2:

foreach ($array as $key => $value){
    语句块;
}

指定された

$array 配列をスキャンし、現在の配列の値を $value に割り当てます。 、キー名は $key に割り当てられます。

説明:

foreach ステートメントがループすると、配列内のポインターが 1 ステップ前に移動し、次のループで次の配列要素が取得されます。走査を停止し、配列の最後に到達するまでループを終了します。

foreach ステートメントは配列を走査して変更します

foreach ステートメントの構文を理解した後、コード例を使用して実際に実行してみましょうforeach ステートメントが配列をどのように走査するかを詳しく見てみましょう。

インスタンス 1:

<?php
header("Content-type:text/html;charset=utf-8");
$array= array("香蕉","苹果","梨子","橙子","橘子","榴莲");
foreach ($array as $value) { 
    echo $value . "<br/>";
} 
?>

出力:

香蕉
苹果
梨子
橙子
橘子
榴莲

インスタンス 2:

<?php
header("Content-type:text/html;charset=utf-8");
$array= array("香蕉","苹果","梨子","橙子","橘子","榴莲");
foreach ($array as $key => $value) { 
    echo "键名为:".$key.",键值为:".$value . "<br/>";
} 
?>

出力:

PHP ループ学習 4: foreach ステートメントを使用して配列要素を走査および変更する方法

配列要素の走査と変更

一般に、foreach ステートメントを使用して配列を走査する場合、配列が実行される 通常、操作は配列自体には影響しません。

例: ループ内で配列を変更し、ループ外で配列にアクセスすると、配列が変更されていないことがわかります

<?php
header("Content-type:text/html;charset=utf-8");
$array= array(1,2,3,4,5,);
foreach ($array as $value) { 
    $value = $value*2;  // 元素值乘以2
}
var_dump($array)
?>

出力:


PHP ループ学習 4: foreach ステートメントを使用して配列要素を走査および変更する方法

配列要素が変更されていないことがわかります。しかし、場合によってはループを通じて配列を変更する必要がある場合、どうすればよいでしょうか?

参照ループを使用できます (

$value の前に & を追加すると、foreach ステートメントは値をコピーするのではなく、参照によって値を割り当てます)。ループ本体内 配列に対する操作は配列自体に影響を与えます。

<?php
$array= array(1,2,3,4,5,);
foreach ($array as &$value) { 
    $value = $value*2;  // 元素值乘以2
}
var_dump($array)
?>

出力:


PHP ループ学習 4: foreach ステートメントを使用して配列要素を走査および変更する方法

最後の要素の前に

& があることがわかります。配列の最後の要素の $value 参照は、foreach ループの後も残ります。それを破棄するには unset() を使用する必要があります。

<?php
$array= array(1,2,3,4,5,);
foreach ($array as &$value) { 
    $value = $value*2;  // 元素值乘以2
}
unset($value); // 最后取消掉引用
var_dump($array)
?>

出力:


PHP ループ学習 4: foreach ステートメントを使用して配列要素を走査および変更する方法

推奨: PHP 面接の質問の概要 (コレクション) 》 《phpビデオチュートリアル

以上がPHP ループ学習 4: foreach ステートメントを使用して配列要素を走査および変更する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。