PHP フォームでは、類似した名前の入力フィールドが複数あり、配列のような構造。ただし、PHP でこれらの値にアクセスすると、それらの値が単一の文字列として出力されることに気づくかもしれません。この記事では、この問題に対処し、入力配列を使用可能な PHP 配列に変換する解決策を提供します。
問題を示すために、次の HTML フォームを考えてみましょう。
<input type="text" name="name[]" /> <input type="text" name="email[]" /> <input type="text" name="name[]" /> <input type="text" name="email[]" /> <input type="text" name="name[]" /> <input type="text" name="email[]" />
このフォームが送信すると、対応する PHP 変数が配列として設定されます:
$name = $_POST['name']; $email = $_POST['email'];
ただし、値を出力しようとすると、値が表示されることに気づくでしょう。単一の文字列として:
foreach ($name as $v) { print $v; } foreach ($email as $v) { print $v; }
name1name2name3email1email2email3
この問題を解決するには、両方の配列を反復処理し、ヘルパー関数を使用して対応する値を組み合わせることができます:
foreach ($name as $key => $n) { print "The name is " . $n . " and email is " . $email[$key] . ", thank you\n"; }
追加の入力フィールドを処理するこのパターン:
$location = $_POST['location']; foreach ($name as $key => $n) { print "The name is " . $n . ", email is " . $email[$key] . ", and location is " . $location[$key] . ". Thank you\n"; }
このソリューションにより、構造化されたアクセス可能な方法で入力値にアクセスできるようになり、必要に応じて、さらなる処理や操作を実行できます。
以上がPHP で配列のようなフォーム入力を適切に処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。