ホームページ > バックエンド開発 > PHPチュートリアル > Foreach ループ内で PHP 配列値を正しく変更するにはどうすればよいですか?

Foreach ループ内で PHP 配列値を正しく変更するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-12-15 04:59:32
オリジナル
750 人が閲覧しました

How Can I Correctly Modify PHP Array Values Within a Foreach Loop?

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]['v​​alue 内での $key の使用に注意してください。 '] を使用して、外側のループ内の現在の要素のキーを参照します。これにより、元の配列が意図したとおりに変更されることが保証されます。

以上がForeach ループ内で PHP 配列値を正しく変更するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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