1

foreach($_POST as $key=>$value) を使用してデータベースにデータを挿入する単純なフォームがあります。フォームに隠しフィールドがあります。

<input name="isset" type="hidden" value="true" />

そして、私は if(isset($_POST['isset'])) {

隠しフィールドをループから除外する方法を考え出そうとしています...?

この投稿を見てきましたが、どこで使用するかわかりません if (strpos($key, 'hdn_') == false) // 続行

PHP の for each ループから <input type="hidden"> を除外する方法

任意のガイダンスをいただければ幸いです....

4

2 に答える 2

3

除外するキーの正確な名前がわかっている場合array_diff_keyは、便利なオプションです。

$keysToRemove = array('isset'); // you can add as many as you want
$values = array_diff_key($_POST, array_flip($keysToRemove));

foreach ($values as $k => $v) { ... }

ただし、$valuesデータベースに入ることが意図されているため、ブラックリストの代わりに許可されたキーのホワイトリストを使用する必要があります。あなたはそれを行うことができますarray_intersect_key

$keysToKeep = array('field1', 'field2', 'field3'); // as many as you want
$values = array_intersect_key($_POST, array_flip($keysToKeep));

foreach ($values as $k => $v) { ... }
于 2012-11-10T16:12:19.237 に答える
1

foreach の内部:

foreach ($_POST as $key => $value) {
    if ($key != 'isset') {
        //code here
    }
}

(あなたの質問から私が得たものについて)

または、配列からunset()、「isset」配列キーを持つ要素を取得できます。

于 2012-11-10T16:07:41.373 に答える