PHP で Foreach ループを使用して元の配列の値を変更する
多次元配列は、特に配列内の値を変更する必要がある場合、操作が難しい場合があります。ループ中の元の配列。 foreach ループで必須の入力をチェックし、エラー メッセージを設定するときに発生する一般的な問題を詳しく調べてみましょう。
指定されたコード スニペットの目的は、フィールドが必須かどうか、および $ 内の対応する値を確認することです。 _POST 変数が空です。その場合、フィールドの値はエラー メッセージで更新され、$fields 配列の一部として返される必要があります。
問題は、foreach ループ内で現在のフィールドの値を更新しようとすると発生します。行 "$fields[$field]['value'] = "何らかのエラー";" $fields 配列内の対応するフィールドの値を変更しようとしています。ただし、PHP はデフォルトで値で渡すため、実際の配列構造は直接変更されません。
この問題を解決するには、配列を参照 (アンパサンド記号 '&') で渡すことが解決策となります。これにより、foreach ループはローカル コピーを操作するのではなく、元の配列を変更できるようになります。提供された回答で提案されているように、foreach ループ宣言に「&」を追加すると、
foreach ($fields as $key => $field) {
$field 変数は、$fields 配列内の現在の要素のエイリアスになります。これは、$field に加えられた変更が元の配列に反映されることを意味します。
したがって、行 "$fields[$key]['value'] = "Some error";" $fields 配列内の現在のフィールドの値を正しく更新し、必要な条件が満たされた場合は「何らかのエラー」に設定します。
参照による受け渡しは注意して使用してください。その影響や潜在的な副作用が不明な場合は、承認されたソリューションで提案されているような、$fields[$key] を明示的に使用して元の配列にアクセスして変更する代替アプローチの使用を検討してください。
以上がPHP で Foreach ループを使用するときに元の配列値を変更するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。