ホームページ > バックエンド開発 > PHPの問題 > PHPのforeachループで配列を変更する方法

PHPのforeachループで配列を変更する方法

PHPz
リリース: 2023-04-27 09:32:01
オリジナル
932 人が閲覧しました

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 を使用してループ内で配列を変更する場合は、次の点に注意する必要があります。参照によって渡されます。それ以外の場合は変更されます。値は有効になりません。

    たとえば、要素が
  1. 'name' => 'Tom'、'age' => 20 である連想配列
  2. $arr
があるとします。 「gender」=>「male」

、次のコードを使用して 'age' 要素の値を変更しても、実際には有効になりません: <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">foreach($arr as $key =&gt; $value){   if($key == 'age'){     $value = 25;   } }</pre><div class="contentsignin">ログイン後にコピー</div></div> $value はコピーされた値であるため、これを変更しても元の配列には影響しません。元の配列を変更する場合は、参照転送を使用する必要があります。つまり、ループ変数の前に

&

シンボルを追加します。<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">foreach($arr as $key =&gt; &amp;$value){   if($key == 'age'){     $value = 25;   } }</pre><div class="contentsignin">ログイン後にコピー</div></div>このとき、## の値を変更します。 #$value が有効になり、元の配列に影響を与えます。

ループ内で配列要素を追加または削除することはお勧めできません。予期しない結果やエラーが発生する可能性があります。要素を追加または削除する必要がある場合は、ループが完了した後に行うことをお勧めします。

概要
  1. foreach
ループは配列を走査する便利な方法であり、配列内の要素を変更するためにも使用できます。配列要素を変更するには、ループ本体内の対応する要素を操作するだけです。すべての要素を変更する場合は

$value

の操作だけで済みますが、一部の要素のみを変更する場合は

if ステートメントを使用して判断できます。 foreach を使用してループ内で配列を変更する場合は、参照の受け渡しに注意する必要があり、ループ内で要素を追加または削除することはお勧めできません。 foreach

ループの使用スキルをマスターすると、配列の処理が容易になります。

以上がPHPのforeachループで配列を変更する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート