PHP は、多くの便利で使いやすい配列処理関数を提供する強力なプログラミング言語であり、foreach
ループもその 1 つです。
PHP では、foreach
ループを使用して、配列内のすべての要素を反復処理し、それらの要素を操作できます。配列内の要素を変更する場合は、foreach
ループを使用する方が便利です。以下に、foreach
ループがどのように配列を変更するかを紹介します。
foreach
ループの基本構文は次のとおりです。
foreach($array as $key => $value){ // 对元素进行操作 }
このうち、$array
は次のことを表します。走査される配列、$key
は現在の要素のキーを表し、$value
は現在の要素の値を表します。 foreach
ループは配列内のすべての要素を走査し、要素ごとにループ本体内の操作を 1 回実行します。
配列要素を変更するには、ループ本体内の要素を操作するだけです。たとえば、連想配列 $arr
があり、その要素が 'name' => 'Tom'、'age' => 20、'gender' => 'male' であるとします。
、'age'
要素の値を 25 に変更したい場合、foreach
ループを使用してこれを実現できます:
$arr = ['name' => 'Tom', 'age' => 20, 'gender' => 'male']; foreach($arr as $key => $value){ if($key == 'age'){ $arr[$key] = 25; } } print_r($arr);
出力結果は Array ([名前] => トム [年齢] => 25 [性別] => 男性)
です。 foreach
ループによって配列内の要素を簡単に変更できることがわかります。
すべての要素を変更する場合は、ループ本体の $value
を操作するだけです。たとえば、要素が [1, 2, 3, 4, 5]
であるインデックス配列 $arr
があり、すべての要素の値を乗算したいとします。 foreach
ループを使用してこれを実現できます:
$arr = [1, 2, 3, 4, 5]; foreach($arr as $key => $value){ $arr[$key] = $value * 2; } print_r($arr);
出力結果は Array ( [0] => 2 [1] => です。 4 [2] => 6 [3] => 8 [4] => 10 )
。ご覧のとおり、foreach
ループにより、配列内のすべての要素の変更が簡単に完了します。
配列内の一部の要素のみを変更する場合は、if
ステートメントを使用して、変更する要素を決定できます。たとえば、連想配列 $arr
があり、その要素が 'name' => 'Tom'、'age' => 20、'gender' => 'male' であるとします。
、'age'
要素の値を 25 に変更し、'age'
要素のみを変更したいと考えています。if## を使用できます。 # これを実現するためのステートメント:
$arr = ['name' => 'Tom', 'age' => 20, 'gender' => 'male']; foreach($arr as $key => $value){ if($key == 'age'){ $arr[$key] = 25; } } print_r($arr);出力結果は
Array ( [name] => Tom [age] => 25 [gender] => Male ) です。
foreach ループでは、
if ステートメントを使用して変更する要素を決定し、一部の要素の変更を実現していることがわかります。
foreach を使用してループ内で配列を変更する場合は、次の点に注意する必要があります。参照によって渡されます。それ以外の場合は変更されます。値は有効になりません。
、次のコードを使用して 'age'
要素の値を変更しても、実際には有効になりません: <pre class="brush:php;toolbar:false">foreach($arr as $key => $value){
if($key == 'age'){
$value = 25;
}
}</pre>
$value
はコピーされた値であるため、これを変更しても元の配列には影響しません。元の配列を変更する場合は、参照転送を使用する必要があります。つまり、ループ変数の前に
シンボルを追加します。<pre class="brush:php;toolbar:false">foreach($arr as $key => &$value){
if($key == 'age'){
$value = 25;
}
}</pre>
このとき、## の値を変更します。 #$value が有効になり、元の配列に影響を与えます。
ループ内で配列要素を追加または削除することはお勧めできません。予期しない結果やエラーが発生する可能性があります。要素を追加または削除する必要がある場合は、ループが完了した後に行うことをお勧めします。
if ステートメントを使用して判断できます。
foreach
を使用してループ内で配列を変更する場合は、参照の受け渡しに注意する必要があり、ループ内で要素を追加または削除することはお勧めできません。
foreach
以上がPHPのforeachループで配列を変更する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。