我目前有一个包含 50 多个字段的表单,其中大约有 20 个可选字段。
是否有任何简单的方法可以一次处理 $_POST
数据以删除空字符串并将它们更改为 NULL,然后再插入数据库,或者它们是否必须一个接一个地完成以下方法:
if ($_POST['field_x'] == "") {
$_POST['field_x'] = NULL;
}
最佳答案
您可以使用 array_filter:
$post = array_filter($_POST);
http://php.net/manual/en/function.array-filter.php
If no callback is supplied, all entries of input equal to FALSE (see converting to boolean) will be removed.
要仅删除空字符串,您可以使用:
function drop_empty($var)
{
return ($var === '') ? NULL : $var;
}
$post = array_filter($_POST, 'drop_empty');
如果您不想删除值,而只想将它们设置为 NULL:使用 array_map
:
$post = array_map('drop_empty', $_POST);
关于php - 将空的 $_POST 数据更改为 NULL 的快速方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7154337/