Home > Backend Development > PHP Tutorial > How to merge arrays and retain key values ​​in php

How to merge arrays and retain key values ​​in php

不言
Release: 2023-03-30 12:12:01
Original
2354 people have browsed it

Below I will share with you an implementation method of merging arrays and retaining key values ​​in PHP. It has a good reference value and I hope it will be helpful to everyone.

php merges arrays, generally using the array_merge method.

array_merge — Merge one or more arrays

array array_merge ( array $array1 [, array $... ] )
Copy after login

array_merge Merge the cells of one or more arrays, the values ​​in an array Appends to the previous array, returning the resulting 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 a string key name, the same key name will be overwritten by the subsequent one

<?php
$arr1 = array(&#39;name&#39;=>&#39;fdipzone&#39;);
$arr2 = array(&#39;name&#39;=>&#39;terry&#39;);
$result = array_merge($arr1, $arr2);
print_r($result);
?>
Copy after login

Output:

Array
(
 [name] => terry
)
Copy after login

Example 2, the array uses numeric key names, the same key names will not be overwritten, and Key names will be re-indexed

<?php
$arr1 = array(0=>&#39;fdipzone&#39;,1=>&#39;terry&#39;);
$arr2 = array(0=>&#39;php&#39;,1=>&#39;python&#39;);
$result = array_merge($arr1, $arr2);
print_r($result);
?>
Copy after login

Output:

Array
(
 [0] => fdipzone
 [1] => terry
 [2] => php
 [3] => python
)
Copy after login

Due to work needs, the answers to the two parts of the multiple-choice questions in the questionnaire need to be merged together. The answers to each part are arrays (key=>value), the key is the question number, and the value is the answer. There is no duplication of question numbers in the two parts. .

Use array_merge to merge two parts of the answer

<?php
$form_data1 = array(11=>&#39;A&#39;,12=>&#39;B&#39;,13=>&#39;C&#39;,14=>&#39;D&#39;);
$form_data2 = array(25=>&#39;B&#39;,26=>&#39;A&#39;,27=>&#39;D&#39;,28=>&#39;C&#39;);
$result = array_merge($form_data1, $form_data2);
print_r($result);
?>
Copy after login

Output:

Array
(
 [0] => A
 [1] => B
 [2] => C
 [3] => D
 [4] => B
 [5] => A
 [6] => D
 [7] => C
)
Copy after login

Use array_merge to merge. Because the question number (key) is a number, the key name will be re-indexed, resulting in the question number not being retained.

Method to merge arrays and keep key values:

<?php
$form_data1 = array(11=>&#39;A&#39;,12=>&#39;B&#39;,13=>&#39;C&#39;,14=>&#39;D&#39;);
$form_data2 = array(25=>&#39;B&#39;,26=>&#39;A&#39;,27=>&#39;D&#39;,28=>&#39;C&#39;);
$result = $form_data1 + $form_data2;
print_r($result);
?>
Copy after login

Output:

Array
(
 [11] => A
 [12] => B
 [13] => C
 [14] => D
 [25] => B
 [26] => A
 [27] => D
 [28] => C
)
Copy after login

Use " " operator to merge arrays, you can retain the key values ​​​​of the array, if the merged array contains For the same key value, the later key value will not overwrite the previous key value (the previous key value takes precedence).

Related recommendations:

3 PHP methods for looping through arrays list(), each() and while summary

The above is the detailed content of How to merge arrays and retain key values ​​in php. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template