PHP 開発では、配列の操作は頻繁に遭遇する操作の 1 つです。配列を操作するとき、場合によっては配列内の値を変更する必要があります。では、PHP では、配列内の値を変更するにはどうすればよいでしょうか?以下に詳しくご紹介していきます。
1. for ループを使用して配列を走査し、値を変更する
最も基本的な方法は、for ループを使用して配列を走査し、変更する必要がある値を変更することです。具体的な実装は次のとおりです。
<?php $arr = [1, 2, 3, 4, 5]; for($i = 0; $i < count($arr); $i++) { if($arr[$i] == 2) { $arr[$i] = 20; } } print_r($arr); ?>
上記のコードでは、5 つの要素を含む配列 $arr を定義し、for ループを通じて配列を走査し、if ステートメントを使用して要素が等しいかどうかを判断します。 2へ。 2 に等しい場合は、20 に変更します。最後に、print_r() 関数を呼び出して、変更された配列を出力します。
このメソッドは、配列内の変更が必要な 1 つの値のみに適していることに注意してください。変更する必要がある値が複数ある場合、配列を複数回走査する必要があり、効率が比較的低くなります。
2. foreach ループを使用して配列値を変更する
for ループに加えて、foreach ループを使用して配列を走査し、値を変更することもできます。具体的な実装は次のとおりです。
<?php $arr = [ ['name' => 'Tom', 'age' => 18], ['name' => 'Lucy', 'age' => 20], ['name' => 'John', 'age' => 22], ]; foreach($arr as &$val) { if($val['name'] == 'Lucy') { $val['age'] = 21; } } print_r($arr); ?>
上記のコードでは、3 つの要素を含む 2 次元配列 $arr を定義します。各サブ配列には 2 つのキーと値のペア (名前と年齢) が含まれます。 foreach ループを使用して配列を走査し、if ステートメントを使用して name が Lucy と等しいかどうかを判断できます。ルーシーと等しい場合は、年齢を 21 に変更します。ここで、ループ変数 $val の前に & 記号を使用して、$val が参照であることを示し、その値を変更すると元の配列の値が直接変更されることに注意してください。
3. array_map() 関数を使用して配列値を変更する
PHP には、配列内の各要素に対してコールバック関数を実行できる非常に便利な関数 array_map() が用意されています。この関数を使用すると、配列内の値を簡単に変更できます。
<?php $arr = [1, 2, 3, 4, 5]; $arr = array_map(function($val) { if($val == 2) { return 20; } return $val; }, $arr); print_r($arr); ?>
上記のコードでは、array_map() 関数を呼び出し、最初のパラメーターとして匿名関数を渡します。この無名関数の機能は、要素が 2 に等しいかどうかを判断することです。2 に等しい場合は 20 を返し、それ以外の場合は要素自体を返します。最後に、変更した配列を出力します。
4. array_walk() 関数を使用して配列値を変更する
array_map() 関数と同様に、PHP には、配列内の各要素に適用する別の関数 array_walk() も用意されています。 -定義された関数。具体的な例は次のとおりです。
<?php $arr = [ ['name' => 'Tom', 'age' => 18], ['name' => 'Lucy', 'age' => 20], ['name' => 'John', 'age' => 22], ]; function changeAge(&$val, $key) { if($val['name'] == 'Lucy') { $val['age'] = 21; } } array_walk($arr, 'changeAge'); print_r($arr); ?>
コードでは、配列内のサブ配列の名前が Lucy と等しいかどうかを判断する関数 changeAge() を定義します。ルーシーと等しい場合は、年齢を 21 に変更します。次に、array_walk() 関数を呼び出し、changeAge() を 2 番目のパラメーターとして渡します。ここで、changeAge() 関数の最初のパラメーター $val は参照型であることに注意してください。つまり、$val の値を変更すると、元の配列の値が直接変更されます。
概要:
上記の 4 つの方法により、配列内の値を簡単に変更できます。実態に応じて最適な方法を検討する必要がある。もちろん、上記の方法に加えて、array_replace() 関数の使用や参照サイクルなど、配列内の値を変更する他の方法もあります。配列内の値を変更するときは、不要な結果を避けるためにロジックの正確さに注意を払う必要があることを忘れないでください。
以上がPHPで配列の値を変更する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。