我正在尝试从表单数据更新关联数组的值。当用户按下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
提交表单数据。