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

PHP で foreach ループを使用して元の配列値を変更するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-12-22 20:40:19
オリジナル
1002 人が閲覧しました

How Can I Modify Original Array Values Using a foreach Loop in PHP?

PHP での foreach ループを使用した元の配列値の変更

PHP で配列、特に多次元配列を操作する場合、その要素にアクセスして変更すると、トリッキーになる。 foreach ループを使用して配列を反復処理し、元の値を更新するときに、一般的な課題が 1 つ発生します。

この場合、フォーム フィールド情報を表す配列 $fields について考えてみましょう。

$fields = [
    "names" => [
        "type" => "text",
        "class" => "name",
        "name" => "name",
        "text_before" => "name",
        "value" => "",
        "required" => true,
    ]
];
ログイン後にコピー

次に、フィールドを検証し、対応するフォーム入力が次の場合に「値」キーを「何らかのエラー」に設定する関数を想像してください。 empty:

function checkForm($fields) {
    foreach ($fields as $field) {
        if ($field['required'] && strlen($_POST[$field['name']]) <= 0) {
            $fields[$field]['value'] = "Some error";
        }
    }
    return $fields;
}
ログイン後にコピー

問題のある行は次のとおりです:

$fields[$field]['value'] = "Some error";
ログイン後にコピー

ここでの目的は元の配列を更新することですが、配列キーにアクセスする方法がすぐにはわかりません (この場合) 、"names") をループ内で使用します。

元の配列に $key を使用するインデックス作成

解決策の 1 つは、foreach ループ内で使用できる $key 変数を利用することです。これは、反復処理される現在の配列要素のキーを表します:

foreach ($fields as $key => $field) {
    if ($field['required'] && strlen($_POST[$field['name']]) <= 0) {
        $fields[$key]['value'] = "Some error";
    }
}
ログイン後にコピー

このアプローチでは、$field を使用して現在のフィールドの値にアクセスし、$fields[$key] を使用して元の配列を操作することで、効率的な変更が可能になります。要素の「value」キーの。

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

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