Php 向数组中未知数量的元素添加值

Php 向数组中未知数量的元素添加值,php,arrays,session,Php,Arrays,Session,我正在用PHP制作一个项目,我创建了多个变量,如下所示: $errors = array(); $errors['firstname'] = 'Enter First Name' $errors['lastname'] = 'Enter Last Name' $errors['age'] = 'Enter Age' 我正在使用另一个数组$\u SESSION['flash']['error']来显示项目中的错误 我想要的是得到这样一个数组:$\u SESSION['flash']['error

我正在用PHP制作一个项目,我创建了多个变量,如下所示:

$errors = array();
$errors['firstname'] = 'Enter First Name'
$errors['lastname'] = 'Enter Last Name'
$errors['age'] = 'Enter Age'

我正在使用另一个数组
$\u SESSION['flash']['error']
来显示项目中的错误


我想要的是得到这样一个数组:
$\u SESSION['flash']['error']=('Enter First Name','Enter Last Name','Enter Age')


请帮我解决这个问题。提前感谢。

此代码可以运行

$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" } }

如果要使用未设置值的错误消息填充
$\u会话['flash']['error']
,可以使用循环来完成。在这里,我将创建一个包含所有必需键的数组,然后在这些键上循环,检查值是否为空(在本例中为
$\u 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;
    }
}

$\u会话['flash']['error']=[$errors['firstname']、$errors['lastname']、$errors['age']?是的,但如果可能的话,可以使用一个循环,因为
$errors
的元素数在循环中设置是未知的,并且检查该值是否通过post设置,您可以执行
$required=['firstname','lastname','age'];foreach($key时必需){if(empty($\u POST[$key']){$\u SESSION['flash']['error'][=$errors[$key];}
。使用
$errors
中所需密钥的数组
$required
,可以检查值是否为
空()
并添加到您的
$\u会话
数组中,如果您只想将所有
$errors
传递到
$\u会话['flash']['error']
,一个类似的循环-
foreach($errors as$error){$\u会话['flash'['error'][=$error;}
感谢您的帮助。请将您的答案发布给我,以便我将其标记为正确;)@LeiLionel我添加了一个更简单的示例,它只是在
$errors
数组上循环,并使用第二个示例的更清晰/更简单版本检查密钥。有时我想得太多,不记得保持简单。