我正在用PHP做一个项目,我创建了多个变量,如下所示:
$errors = array();
$errors['firstname'] = 'Enter First Name'
$errors['lastname'] = 'Enter Last Name'
$errors['age'] = 'Enter Age'
我有另一个数组$_SESSION['flash']['error']
来显示项目中的错误。
我想要的是得到这样的数组:$_SESSION['flash']['error'] = ('Enter First Name', 'Enter Last Name', 'Enter Age')
请帮我解决这个问题。提前谢谢。
如果您想用未设置值的错误消息填充$_SESSION['flash']['error']
,可以使用循环来完成。在这里,我将创建一个包含所有必需密钥的数组,然后在这些密钥上循环,检查值是否为空(在本例中为$_POST
),然后将错误消息插入数组-
// array of required keys
$required = ['firstname','lastname','age'];
// loop over the required keys
foreach($required as $key){
// check if that key value is empty
if(empty($_POST[$key])){
// if the value was empty, insert the corresponding error message into the array
$_SESSION['flash']['error'][] = $errors[$key];
}
}
但是,如果您只是想添加所有的错误消息,而不添加任何条件,那么一个简单的循环就可以做到这一点-
foreach($errors as $error) {
$_SESSION['flash']['error'][] = $error;
}
作为替代方案,您可以在$error
数组上循环。这具有与第一实施例相同的结果,具有第二实施例的清洁度。在这里,我们检查$errors
密钥,然后添加$errors
值。
foreach($errors as $key => $value) {
if(empty($_POST[$key])){
$_SESSION['flash']['error'][] = $value;
}
}
此代码可以运行。
$errors = array();
$errors['firstname'] = 'Enter First Name';
$errors['lastname'] = 'Enter Last Name';
$errors['age'] = 'Enter Age';
$_SESION['flash']['error'] = implode(", ", $errors);
var_dump($_SESSION);
# the result is:
# array(1) { ["flash"]=> array(1) { ["error"]=> string(42) "Enter First Name,Enter Last Name,Enter Age" } }