php合并数组并保留键值的方法
答案:使用 + 连接两个数组,替换array_merge()函数。
php合并数组,一般会使用array_merge方法。
array_merge — 合并一个或多个数组
array array_merge ( array $array1 [, array $... ] )
1
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
)
使用 “+” 运算符合并数组,可以保留数组的键值,如果合并的数组中含有相同的键值,后面的不会覆盖前面的键值(前面的优先)。
--------------------- 
作者:傲雪星枫 
来源:CSDN 
原文:https://blog.csdn.net/fdipzone/article/details/73928965 
版权声明:本文为博主原创文章,转载请附上博文链接!
php合并数组并保留键值的方法的更多相关文章
- 实现对多维数组按照某个键值排序的两种方法(array_multisort和array_sort)
		实现对多维数组按照某个键值排序的两种解决方法(array_multisort和array_sort): 第一种:array_multisort()函数对多个数组或多维数组进行排序. //对数组$ ... 
- PHP如何根据数组中的键值进行排序
		主要是使用PHP的排序函数,asort()和arsort(). 为了减少代码的耦合性,我们将根据数组中的键值进行排序封装成一个函数 <?php $array = array( array(), ... 
- PHP编程实现多维数组按照某个键值排序的方法
		1.array_multisort()函数对多个数组或多维数组进行排序. //对数组$hotcat按照count键值大小降序进行排序: $hotcat =array( array('1501'=&g ... 
- js变量作为数组对象的键值方法
		js变量作为数组对象的键值方法,变量键值获取数组值 js也可以像php的数组一样用下标获取数组的值,方法是: var arr = {'key':'abc'}; var key = 'key'; con ... 
- php 二位数组按某个键值排序
		$arr=[ array( 'name'=>'小坏龙', 'age'=>28 ), array( 'name'=>'小坏龙2', 'age'=>14 ), array( 'na ... 
- 二维数组按某个键值排序 FOR PHP
		$arr=[ array( 'name'=>'小坏龙', 'age'=>28 ), array( 'name'=>'小坏龙2', 'age'=>14 ), array( 'na ... 
- PHP中如何对二维数组按某个键值进行排序
		$arr=[ array( 'name'=>'张三', 'age'=>28 ), array( 'name'=> ... 
- phpcms数组处理后键值插入(php自带库函数)和自己处理办法比较。
		phpcms处理: public function insert($data, $table, $return_insert_id = false, $replace = false) { if(! ... 
- php之PDOStatement::execute数组参数带有键值会出错
		当预处理的SQL语句是用问号占位符时,如果是用数组传参的,数组里不要带有键值,否则无法执行SQL. 出错的代码如下: $test = new PDODB(); $param=["d" ... 
随机推荐
- 10.10xadmin
			2018-10-10 15:11:55 这几天讲的是xadmin插件 就是把表单,数据内容封装到类里面,简化的增删改查步骤! 放上源代码: app01/xadim.py from django.con ... 
- A - 取(m堆)石子游戏
			m堆石子,两人轮流取.只能在1堆中取.取完者胜.先取者负输出No.先取者胜输出Yes,然后输出怎样取子.例如5堆 5,7,8,9,10先取者胜,先取者第1次取时可以从有8个的那一堆取走7个剩下1个,也 ... 
- 使用python爬虫爬取股票数据
			前言: 编写一个爬虫脚本,用于爬取东方财富网的上海股票代码,并通过爬取百度股票的单个股票数据,将所有上海股票数据爬取下来并保存到本地文件中 系统环境: 64位win10系统,64位python3.6, ... 
- 洛谷P1182 数列分段【二分】【贪心】
			题目:https://www.luogu.org/problemnew/show/P1182 题意: 有n个数,要分成连续的m段.将每段中的数相加,问之和的最大值的最小值是多少. 思路: 和P1316 ... 
- TOP100summit:【分享实录】京东1小时送达的诞生之路
			本篇文章内容来自2016年TOP100summit 京东WMS产品负责人李亚曼的案例分享. 编辑:Cynthia 李亚曼:京东 WMS产品负责人.从事电商物流行业近10年,有丰富的物流行业经验,独立打 ... 
- EF将IEnumerable<T>类型转换为Dictionary<T,T>类型
			x 无标题 #region 博客Code {DBEntities}生成EFModel的时候自己命名的 using ({DBEntities} db = new { DBEntities }()) { ... 
- dma传输数据长度,在启动前必须确保是一个大于0的数字
			否则将导致不能接受数据 
- HDU 5950 - Recursive sequence - [矩阵快速幂加速递推][2016ACM/ICPC亚洲区沈阳站 Problem C]
			题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5950 Farmer John likes to play mathematics games with ... 
- mo +离散化 HDU3333(听说还有离线线段树的做法 )
			http://acm.hdu.edu.cn/showproblem.php?pid=3333 mo套map会T,卡了一个logN,所以要先离散化处理 #define _CRT_SECURE_NO_WA ... 
- 栈帧 2.6. Frames  虚拟机内存模型
			https://docs.oracle.com/javase/specs/jvms/se11/html/jvms-2.html#jvms-2.6 小结: 1. https://docs.oracle. ... 
