我的表单中有一组相同的输入字段,其中一些字段可能为空。
<input type="text" class="form-control" name="option[]" placeholder="fill in" />
<input type="text" class="form-control" name="option[]" placeholder="optional" />
<input type="text" class="form-control" name="option[]" placeholder="optional" />
这些输入字段的值进入数组$_POST["option"]
我想过滤$_POST["option"]
,为此我使用以下代码:
$filter = array("option" => array("filter"=>FILTER_CALLBACK,"flags"=>FILTER_FORCE_ARRAY,"options"=>"ucwords"));
$optionfin = filter_input_array(INPUT_POST, $filter);
但现在我还想使用array_filter
函数删除空字段,这样我就可以只将填好的字段输入到我的数据库中,但这似乎不起作用。
$option = array_filter($optionfin);
当我执行以下操作时:
$optionfin = array_filter($_POST["option"]);
这工作正常,但我知道你最好不要以这种方式访问$_POST
因为它不安全......
任何人都可以帮我指出我哪里出错吗?
由于
答案 0 :(得分:0)
因为您使用的是filter_input_array
,所以实际上您最终会得到一个与$_POST
对应的关联数组。因此,要在尝试过滤掉空字段时,您需要指定option
键:
$option = array_filter($optionfin['option']);