从复选框名称中过滤ID

时间:2017-02-09 00:07:26

标签: php arrays array-key preg-grep

我有一些可以检查的复选框。他们看起来像

<input type="checkbox" name="order[123]" value="1">

现在我正在检查formdata并以这种方式过滤order-array中的id,然后再在数据库中查找它们。

$orderids = preg_grep('/^\d+$/', array_keys($_POST['order']));

有更有效的方法吗?

1 个答案:

答案 0 :(得分:0)

使用正则表达式,您确保不使用恶意字符串,但不检查数据库中的可行性。 (例如order[999999999999999999999999]将传递正则表达式,但在数据库中没用。)

最真实的验证是使用array_intersect针对数据库传播的ID运行它们。

   $valid_ids=array_intersect(array_keys($_POST['order']),$db_orderids_array)