http://localhostr.com/files/V1ruKKj/capture.png
我想将所有这些ifs重写为更易于管理大量表单字段的内容。
我知道这不对,但我想将其重写为:
$fields = array();
function infcheck($var)
{
if ( !empty( $var ) )
{
$fields[$var] = $var;
}
}
infcheck( $_POST['streetname'] );
infcheck( $_POST['city'] );
infcheck( $_POST['state'] );
基本上当我运行infcheck()时,我希望输出看起来像这样:
假设$ _POST ['streetname']是“Circle Street”
streetname => "circle street"
获取完整示例:
$fields = array();
infcheck( $_POST['streetname'] );
infcheck( $_POST['city'] );
//would be:
$fields = array(streetname => 'Circle Street', city => 'New York City');
我想我遇到的问题是在$_POST['formname']
变成变量时保留表单的名称。
答案 0 :(得分:2)
你基本上做的是:
$fields = array_filter($_POST);
如果要将$fields
数组限制为预定列表中的某些键,并跳过$_POST
数组中不在该列表中的任何内容,则可以执行以下操作:
$whitelist = array('streetname', 'city', ...);
$fields = array_filter(array_intersect_key($_POST, array_flip($whitelist)));
答案 1 :(得分:0)
您可以将要传递的值数组放在foreach循环中。
foreach($_POST as $key => $value){
$fields[$key] = $value;
}