我正在用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')
请帮我解决这个问题。提前谢谢。
答案 0 :(得分:1)
此代码可以运行。 。 。
$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" } }
答案 1 :(得分:1)
如果要使用未设置的值的错误消息填充$_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;
}
}