php合并数组并保留键值的实现⽅法
php合并数组,⼀般会使⽤array_merge⽅法。
array_merge — 合并⼀个或多个数组
array array_merge ( array $array1 [, array $... ] )
array_merge 将⼀个或多个数组的单元合并起来,⼀个数组中的值附加在前⼀个数组的后⾯,返回作为结果的数组。
如果输⼊的数组中有相同的字符串键名,则该键名后⾯的值将覆盖前⼀个值。然⽽,如果数组包含数字键名,后⾯的将不会覆盖原来的值,⽽是附加到后⾯。
如果只给了⼀个数组并且该数组是数字索引的,则键名会以连续⽅式重新索引。
例⼦1,数组使⽤字符串键名,相同的键名会被后⾯的覆盖
<?php
$arr1 = array('name'=>'fdipzone');
$arr2 = array('name'=>'terry');
$result = array_merge($arr1, $arr2);
print_r($result);
>
输出:
Array
(
[name] => terry
)
例⼦2,数组使⽤数字键名,键名相同不会覆盖,且键名会重新索引
<?php
$arr1 = array(0=>'fdipzone',1=>'terry');
$arr2 = array(0=>'php',1=>'python');
$result = array_merge($arr1, $arr2);
print_r($result);
>
输出:
Array
(
[0] => fdipzone
[1] => terry
[2] => php
[3] => python
)
因⼯作需要,需要将调查问卷的两部分选择题的答案合并⼀起,每部分答案为数组(key=>value),key为题号,value为答案,且两部分的题号不存在重复。
使⽤array_merge合并两部分答案
<?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);
>
输出:
Array
(
[0] => A
[1] => B
[2] => C
[3] => D
[4] => B
[5] => A
[6] => D
[7] => C
)
使⽤array_merge合并,因为题号(key)是数字,所以键名会重新索引,导致题号不能保留。
合并数组并保留键值的⽅法:
<?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);
>
输出:
Array
(
[11] => A
[12] => B
[13] => C
[14] => D
[25] => B
[26] => A
[27] => D
[28] => C
)
使⽤ “+” 运算符合并数组,可以保留数组的键值,如果合并的数组中含有相同的键值,后⾯的不会覆盖前⾯的键值(前⾯的优先)。
laravel框架下载
以上这篇php合并数组并保留键值的实现⽅法就是⼩编分享给⼤家的全部内容了,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。