PHP - 阵列中的Foreach

时间:2014-09-13 01:23:14

标签: php arrays

我正在试图弄清楚如何做到这一点。我可以很容易地在Perl中完成它,但不能让它在Php中工作:

我在网络表单上有大约6个字段,这些字段在填写时都是必填字段。

我想将它们放入数组中,如下所示:name => “错误信息在这里”:

  $_ReqFields = array( 'name' => "Name is Required", 'field2' => "Field 2 is Required", 'field3' => "Field 3 is Required"); // ect...

但是如果提交的字段是空的,我无法弄清楚foreach是否显示该消息,这是我到目前为止所拥有的:

$_err = 0;
foreach ($reqFields as $__field) {
  if(empty($_REQUEST[$__field])) {
     $_err++;
     $_errMsg .= "{$reqFields{$__field}}" . "<br>";// ?? not sure how to do this to keep appending the error message for each field to the error message I'll show...
  }
}

那么我只需要检查$ _err是否仍为0,如果是这样,没有错误,可以处理请求......但我无法弄清楚我在那里做错了什么。

你能帮我吗?

谢谢。 富

2 个答案:

答案 0 :(得分:0)

首先是你的变量名&#34; $ _ ReqFields&#34;与你使用的不一样&#34; $ reqFields&#34;也许你需要将$ _ReqField重命名为$ reqFields

试试这个:

$reqFields = array(  'name' => 'Name is Required',
                     'field2' => 'Field 2 is Required',
                     'field3' => 'Field 3 is Required');
$_err = 0;
$_errMsg = '';
foreach ($reqFields as $field_name=>$error_msg) {
  if(isset($_REQUEST[$field_name]) && !$_REQUEST[$field_name]) {
     $_err++;
     $_errMsg .= $error_msg.'<br />';
  }
}

答案 1 :(得分:0)

这是否有效:

$_err = 0;
$_errMsg = '';
foreach ($reqFields as $key=>$value) {
  if(empty($_POST[$key])) {
    $_err++;
    $_errMsg .= $value . '<br />';
  }
}

修复foreach以查找键和值,我猜数据是POST数据,所以我将$ _REQUEST更改为$ _POST。还修复了$ _errMsg