我从用户输入表单中有一个名为$ row的关联数组,我想检查其任何值是否为空,如果有任何值为空,我想创建另一个名为$ error []的关联数组并将其推为空值放入此关联数组中,但我想使用空数组的键作为错误数组的名称,以便我可以知道哪些字段为空。
例如行数组如下$ row = array('name'=>'martin','tel'=> 023,'experience'=>'high');
我要创建一个如下的错误数组,以检查姓名,电话或经历是否为空。
如果我发现例如name和tel为空,我希望错误数组如下$ error ['name'] ='name不能为空' $ error ['tel'] ='tel不能为空'
我有很多要遍历的输入值。
这是我尝试过的代码,但是出现未定义偏移量的错误。
function is_empty($row){
$errors= [];
$countRows = count($row);
for($i=0; $i<=$countRows;$i++){
if(empty(trim($row[$i]))){
$i = (string)$i;
$errors[$i] = $i ."is empty";
}
}
return $errors;
}
$errors = is_empty($row);
if(!empty($errors)){
return $errors;
}
print_r($errors);
我没有从中得到一个关联数组。
答案 0 :(得分:0)
使用简单的array_filter()怎么样?它会使用值为空的array元素,然后使用单个foreach循环来打印或显示错误消息。希望这会有所帮助:)
<?php
$row = array ('name'=>'martin','tel'=>null, 'experience'=> 'high','password'=>'','occupation'=>'');
$missing_values = array_filter($row, function($value) { return $value == ''; });
$error = [];
print_r($missing_values);
foreach($missing_values as $k=>$v){
$error[$k] = "$k can't be empty";
}
print_r($error);
?>
输出:
Array (
[tel] => tel can't be empty
[password] => password can't be empty
[occupation] => occupation can't be empty
)
答案 1 :(得分:0)
您可以检查键中的值是否为空以及键是否已设置。
function is_empty($row)
{
$errors=array();
foreach ($row as $key => $value) {
if(!isset($row[$key]) && $row[$key] == '') {
$x[$key] = $key." is empty";
}
}
print_r($errors);
}
答案 2 :(得分:0)
尝试以下操作:
View
它将同时消除您的空白并填写您的消息。输出:
Array([name] => name是必需的,不能为空[tel] => tel是 必填,不能为null)