【问题标题】:Php associative array value update from a form从表单更新php关联数组值
【发布时间】:2021-03-26 14:26:26
【问题描述】:

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

$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 html arrays forms


【解决方案1】:

这可能会帮助您完善您的问题。

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

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

<?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', )

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 您的答案中的全大写似乎是对 OP 使用全大写的回应。虽然我个人觉得这很有趣,但这种行为可能会被认为是粗鲁的,并不是我们真正想要鼓励的行为。将来,只需编辑 OP 的问题即可将大写的所有用途更改为小写。谢谢。
    猜你喜欢
    • 2015-07-21
    • 2010-10-22
    • 1970-01-01
    • 2017-09-02
    • 2019-05-12
    • 2012-09-20
    • 1970-01-01
    • 2013-03-06
    • 2021-01-15
    相关资源
    最近更新 更多