ホームページ >バックエンド開発 >PHPチュートリアル >Foreach ループで配列値の変更が機能しないのはなぜですか?それを修正するにはどうすればよいですか?
Foreach ループを使用した配列値の変更
コードでは、foreach ループを使用して $bizaddarray を反復処理し、それぞれを変更しています。値は、strip_tags、ucwords、および strto lower 関数を使用して取得されます。ただし、後で配列を文字列に変換すると、HTML タグがまだ存在しているようです。これは、foreach ループがデフォルトで配列要素のコピーを作成するため、それらのコピーに加えた変更は元の配列には反映されません。
値を直接変更する
変更を永続的にするには、元の配列の値を直接変更する必要があります。これを実現するには 2 つの方法があります。
方法 1: メモリ参照を使用する
この方法では、& 演算子を使用して元の配列値への参照を取得します。このリファレンスを通じて変更を加えると、元の配列内の対応する要素が直接変更されます。
foreach ($bizaddarray as &$value) { $value = strip_tags(ucwords(strtolower($value))); } unset($value); // Remove the reference to prevent unintended modifications
方法 2: ソース配列を使用する
この方法では、 $key 変数を使用したソース配列要素。この要素を通じて変更を加えると、元の配列も更新されます。
foreach ($bizaddarray as $key => $value) { $bizaddarray[$key] = strip_tags(ucwords(strtolower($value))); }
これらのメソッドのいずれかを使用すると、HTML タグが配列の値から完全に削除され、文字列に反映されます。変換。
以上がForeach ループで配列値の変更が機能しないのはなぜですか?それを修正するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。