1

{fullname, studentnumber, email}$arrという値を取る配列から読み取ろうとする次の PHP コードがあるとします。HTML フォームを送信すると、この PHP コードは foreach ループを実行し、ページに投稿された値を配列に格納します。$_SESSION

foreach($arr as $field):
    $_SESSION[$field] = $_POST[$field];
endforeach;

上記のコードは意図したとおりに機能しません。上記のコード ブロックを以下のコードに置き換えると、ページのフィールドの値が$_SESSION配列に正しく格納されます。

$_SESSION[fullname] = $_POST[fullname];
$_SESSION[studentnumber] = $_POST[studentnumber];
$_SESSION[email] = $_POST[email];

効率的で拡張可能な方法でこれを達成するにはどうすればよいですか? フォームに新しいフィールドを追加するたびに、新しい $_SESSION ステートメントを作成する必要はありません。

編集: // コードの最初のブロックは、実際には意図したとおりに機能します。もともと誤植がありました!

4

1 に答える 1

0

あなたが望むのは array_keys() を使用することです。それ以外の場合は、配列の内容を取得しています。

foreach (array_keys($arr) as $field)

これが機能するかどうか/あなたが探しているものかどうか教えてください:)

于 2013-02-09T00:49:13.813 に答える