Home > Article > Backend Development > How to merge php arrays without overwriting
How to combine PHP arrays without overwriting: First create a PHP sample file; then use the "array_merge($arr1, $arr2);" method to merge two arrays without overwriting the same key name.
The operating environment of this article: windows7 system, PHP7.1 version, DELL G3 computer
How to merge PHP arrays without overwriting them?php method to merge arrays and retain key values
php merges arrays, generally using the array_merge method.
array_merge — Merge one or more arrays
array array_merge ( array $array1 [, array $... ] )
array_merge Merges the cells of one or more arrays. The values in one array are appended to the previous array and returned as the result. array.
If the input array has the same string key name, the value after the key name will overwrite the previous value. However, if the array contains numeric keys, the latter will not overwrite the original value, but will be appended to it.
If only an array is given and the array is numerically indexed, the key names are re-indexed in a consecutive manner.
Example 1, the array uses string key names, the same key name will be overwritten by the subsequent one
<?php $arr1 = array('name'=>'fdipzone'); $arr2 = array('name'=>'terry'); $result = array_merge($arr1, $arr2); print_r($result); ?>
Output:
Array ( [name] => terry )
Example 2, the array uses numeric key names, Key names with the same key names will not be overwritten, and the key names will be re-indexed
<?php $arr1 = array(0=>'fdipzone',1=>'terry'); $arr2 = array(0=>'php',1=>'python'); $result = array_merge($arr1, $arr2); print_r($result); ?>
Output:
Array ( [0] => fdipzone [1] => terry [2] => php [3] => python )
Due to work needs, the answers to the two parts of the multiple-choice questions in the questionnaire need to be merged together, and the answers to each part are It is an array (key=>value), key is the question number, value is the answer, and there is no duplication of question numbers in the two parts.
Use array_merge to merge the two parts of the answer
<?php $form_data1 = array(11=>'A',12=>'B',13=>'C',14=>'D'); $form_data2 = array(25=>'B',26=>'A',27=>'D',28=>'C'); $result = array_merge($form_data1, $form_data2); print_r($result); ?>
Output:
Array ( [0] => A [1] => B [2] => C [3] => D [4] => B [5] => A [6] => D [7] => C )
Use array_merge to merge, because the question number (key) is a number, so the key name will be re-indexed, resulting in the question The number cannot be reserved.
Method to merge arrays and retain key values:
<?php $form_data1 = array(11=>'A',12=>'B',13=>'C',14=>'D'); $form_data2 = array(25=>'B',26=>'A',27=>'D',28=>'C'); $result = $form_data1 + $form_data2; print_r($result); ?>
Output:
Array ( [11] => A [12] => B [13] => C [14] => D [25] => B [26] => A [27] => D [28] => C )
Use the " " operator to merge arrays to retain the keys of the array Value, if the merged arrays contain the same key value, the later key value will not overwrite the previous key value (the former one takes precedence).
Recommended learning: "PHP Video Tutorial"
The above is the detailed content of How to merge php arrays without overwriting. For more information, please follow other related articles on the PHP Chinese website!