ホームページ >バックエンド開発 >PHPチュートリアル >Foreach ループ内で PHP 配列値を正しく変更するにはどうすればよいですか?
Foreach ループでの PHP 配列値の変更 (重複修正)
多次元配列では、foreach ループを使用して各要素を走査すると、次のような問題が発生する可能性があります。オリジナルを変更しようとする場合の複雑さarray.
次の例を考えてみましょう:
$fields = [ "names" => [ "type" => "text", "class" => "name", "name" => "name", "text_before" => "name", "value" => "", "required" => true, ] ];
次に、必要な入力が入力されているかどうかをチェックする関数があるとします:
function checkForm($fields) { foreach ($fields as $field) { if ($field['required'] && strlen($_POST[$field['name']]) <= 0) { $fields[$field]['value'] = "Some error"; // Here's the issue } } return $fields; }
問題のある行$fields[$field]['value'] = "何らかのエラー"; です。元の配列を変更するには、以下に示すように、値ではなく現在の要素のキーにアクセスする必要があります。
foreach ($fields as $key => $field) { if ($field['required'] && strlen($_POST[$field['name']]) <= 0) { $fields[$key]['value'] = "Some error"; } }
$fields[$key]['value 内での $key の使用に注意してください。 '] を使用して、外側のループ内の現在の要素のキーを参照します。これにより、元の配列が意図したとおりに変更されることが保証されます。
以上がForeach ループ内で PHP 配列値を正しく変更するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。