php合并数组并保留键值的实现方法


Posted in PHP onMarch 12, 2018

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
)

使用 “+” 运算符合并数组,可以保留数组的键值,如果合并的数组中含有相同的键值,后面的不会覆盖前面的键值(前面的优先)。

以上这篇php合并数组并保留键值的实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
PHP 函数执行效率的小比较
Oct 17 PHP
深入PHP许愿墙模块功能分析
Jun 25 PHP
php递归获取目录内文件(包含子目录)封装类分享
Dec 25 PHP
PHP中error_reporting()用法详解
Aug 31 PHP
php读取txt文件并将数据插入到数据库
Feb 23 PHP
Yii2中使用join、joinwith多表关联查询
Jun 30 PHP
功能强大的php文件上传类
Aug 29 PHP
Yii2中事务的使用实例代码详解
Sep 07 PHP
PHP中单例模式与工厂模式详解
Feb 17 PHP
PHP实现登陆并抓取微信列表中最新一组微信消息的方法
Jul 10 PHP
Laravel 手动开关 Eloquent 修改器的操作方法
Dec 30 PHP
TP5框架实现自定义分页样式的方法示例
Apr 05 PHP
php删除二维数组中的重复值方法
Mar 12 #PHP
PHP重置数组为连续数字索引的几种方式总结
Mar 12 #PHP
php关联数组与索引数组及其显示方法
Mar 12 #PHP
基于php数组中的索引数组和关联数组详解
Mar 12 #PHP
PHP生成加减算法方式的验证码实例
Mar 12 #PHP
thinkphp中U方法按路由规则生成url的方法
Mar 12 #PHP
浅谈PHP中pack、unpack的详细用法
Mar 12 #PHP
You might like
动画 《Pokemon Sword·Shield》系列WEB动画《薄明之翼》第2话声优阵容公开!
2020/03/06 日漫
rrmdir php中递归删除目录及目录下的文件
2011/05/15 PHP
php实现mysql封装类示例
2014/05/07 PHP
PHP数组中头部和尾部添加元素的方法(array_unshift,array_push)
2017/04/10 PHP
PHP基于自定义函数实现的汉字转拼音功能实例
2017/09/30 PHP
Javascript 获取链接(url)参数的方法[正则与截取字符串]
2010/02/09 Javascript
详解强大的jQuery选择器之基本选择器、层次选择器
2012/02/07 Javascript
Javascript实现重力弹跳拖拽运动效果示例
2013/06/28 Javascript
jquery ajax传递中文参数乱码问题及解决方法说明
2014/02/07 Javascript
JS对文本框值的判断示例
2014/03/10 Javascript
JS判断字符串长度的5个方法(区分中文和英文)
2014/03/18 Javascript
理解javascript回调函数
2014/12/28 Javascript
JS实现点击文字对应DIV层不停闪动效果的方法
2015/03/02 Javascript
JS实现的Select三级下拉菜单代码
2015/08/20 Javascript
实例详解ECMAScript5中新增的Array方法
2016/04/05 Javascript
ES6中箭头函数的定义与调用方式详解
2017/06/02 Javascript
lhgcalendar时间插件限制只能选择三个月的实现方法
2017/07/03 Javascript
react-native之ART绘图方法详解
2017/08/08 Javascript
AngularJS 监听变量变化的实现方法
2018/10/09 Javascript
[52:07]完美世界DOTA2联赛PWL S3 LBZS vs access 第二场 12.10
2020/12/13 DOTA
Python实现去除代码前行号的方法
2015/03/10 Python
Tornado协程在python2.7如何返回值(实现方法)
2017/06/22 Python
Python求离散序列导数的示例
2019/07/10 Python
html5构建触屏网站之touch事件介绍
2013/01/07 HTML / CSS
html5 canvas-1.canvas介绍(hello canvas)
2013/01/07 HTML / CSS
5 个强大的HTML5 API 函数推荐
2014/11/19 HTML / CSS
Meli Melo官网:名媛们钟爱的英国奢侈手包品牌
2017/04/17 全球购物
美国半成品食材配送服务商:Home Chef
2018/01/25 全球购物
英国最大的宠物商店:Pets at Home
2019/04/17 全球购物
XML文档面试题
2015/08/05 面试题
代码中finally中的代码会不会执行
2012/02/06 面试题
创建学习型党组织实施方案
2014/03/29 职场文书
公安机关纪律作风整顿剖析
2014/10/10 职场文书
openstack中的rpc远程调用的方法
2021/07/09 Python
什么是SOLID
2022/03/24 Javascript
纯CSS实现一个简单步骤条的示例代码
2022/07/15 HTML / CSS