我有一个简单的表单,可以使用foreach($ _ post as $ key => $ value)将数据插入数据库,我在表单上有一个隐藏的字段
<input name="isset" type="hidden" value="true" />
我使用if(isset($ _ post ['isset'])){
我试图找出如何从循环中排除隐藏的字段...?
我已经看过这篇文章,但不明白我会在哪里使用(strpos($ key,'hdn_')== false)//继续
如何排除&lt; input type ='hidden&quot; gt;从php
中的每个循环任何指导都将不胜感激....
如果您知道要排除的密钥的确切名称,则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) { ... }
foreach内部:
foreach ($_POST as $key => $value) {
if ($key != 'isset') {
//code here
}
}
(对于我从您的问题中得到的)
或从您的数组中,您可以使用" isset"数组键unset()
。