I am trying to update value of an associative array from form data. When the user presses submit, the array values should be updated. Here is the code below.
$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']; } }
How can I do this?
Advertisement
Answer
This might help you refine your question.
Use the same keys, with different array names.
This would just assign a subset of posted form values to a new array if given:
<?php $form_fields = ['name', 'email', 'mobile', 'area', 'address']; $dirty = []; foreach($form_fields as $name) { $dirty[$name] = $_POST[$name] ?? null; }
If you want to compare changes in simple arrays:
$before = [ 'name' => 'Peggy', 'email' => 'peggy@example.com' ]; $after = [ 'name' => 'Peter', 'email' => 'peggy@example.com' ]; var_export(array_diff_assoc($after, $before));
Output:
array ( 'name' => 'Peter', )