Php关联数组值从窗体更新



我正在尝试从表单数据更新关联数组的值。当用户按下submit时,应该更新数组值。这是下面的代码。

$userInfo = array('new_user_name' => '',
'new_user_email'=>'',
'new_user_mobile'=>'',
'new_user_area'=>'',
'new_user_address'=>'');

if (isset($_POST['submit-add-user'])) {
foreach($userInfo as $key => $value){
$key['new_user_name'] = $_POST['name'] ;
$key['new_user_email'] = $_POST['email'];
$key['new_user_mobile'] = $_POST['mobile'];
$key['new_user_area'] = $_POST['area'];
$key['new_user_address'] = $_POST['address'];
}


}

我该怎么做?

这可能有助于完善您的问题。

使用相同的键,使用不同的数组名称。

如果给定,这只会将已发布表单值的子集分配给一个新数组

<?php
$form_fields = ['name', 'email', 'mobile', 'area', 'address'];
$dirty = [];
foreach($form_fields as $name) {
$dirty[$name] = $_POST[$name] ?? null;
}

如果你想比较简单数组中的变化:

$before = [
'name'  => 'Peggy',
'email' => 'peggy@example.com'
];
$after = [
'name'  => 'Peter',
'email' => 'peggy@example.com'
];
var_export(array_diff_assoc($after, $before));

输出:

array ( 'name' => 'Peter', )

好吧,我不确定你是否知道,但当你用几乎任何语言加载代码时,它都会从顶部开始初始化所有变量。它从上到下读取代码。这包括您的数组,所以这是不可能的,因为它在每次页面加载时都会重新初始化。

请尝试查看数据库及其应用程序以查找您的问题。例如,您可以使用pdo提交表单数据。

最新更新