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生成静态页
Nov 25 PHP
解析PHP对现有搜索引擎的调用
Jun 25 PHP
php中过滤非法字符的具体实现
Oct 29 PHP
Thinkphp中Create方法深入探究
Jun 16 PHP
PHP中通过trigger_error触发PHP错误示例
Jun 23 PHP
PHP实现简单数字分页效果
Jul 26 PHP
yii2.0使用Plupload实现带缩放功能的多图上传
Dec 22 PHP
PHP读取大文件末尾N行的高效方法推荐
Jun 03 PHP
完美解决Thinkphp3.2中插入相同数据的问题
Aug 01 PHP
PHP PDO数据库操作预处理与注意事项
Mar 16 PHP
使用composer 安装 laravel框架的方法图文详解
Aug 02 PHP
解决laravel 表单提交-POST 异常的问题
Oct 15 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
MySQL的FIND_IN_SET函数使用方法分享
2012/03/27 PHP
php设计模式之职责链模式实例分析【星际争霸游戏案例】
2020/03/27 PHP
在javascript将NodeList作为Array数组处理的方法
2010/07/09 Javascript
jQuery中add实现同时选择两个id对象
2010/10/22 Javascript
JS图片预加载 JS实现图片预加载应用
2012/12/03 Javascript
js遍历、动态的添加数据的小例子
2013/06/22 Javascript
基于jquery异步传输json数据格式实例代码
2013/11/23 Javascript
nodejs命令行参数处理模块commander使用实例
2014/09/17 NodeJs
jQuery中Form相关知识汇总
2015/01/06 Javascript
Jquery获取radio选中的值
2017/05/05 jQuery
微信小程序 共用变量值的实现
2017/07/12 Javascript
JQuery EasyUI 结合ztrIee的后台页面开发实例
2017/09/01 jQuery
Windows下Node.js安装及环境配置方法
2017/09/18 Javascript
JavaScript寄生组合式继承实例详解
2018/01/06 Javascript
Vue多种方法实现表头和首列固定的示例代码
2018/02/02 Javascript
nuxt.js中间件实现拦截权限判断的方法
2018/11/21 Javascript
js实现时钟定时器
2020/03/26 Javascript
Vue数据双向绑定原理实例解析
2020/05/15 Javascript
[01:49]一目了然!DOTA2DotA快捷操作对比第二弹
2014/05/16 DOTA
Python3实现Web网页图片下载
2016/01/28 Python
简单学习Python多进程Multiprocessing
2017/08/29 Python
python ftp 按目录结构上传下载的实现代码
2018/09/12 Python
Python如何执行系统命令
2020/09/23 Python
python 读取、写入txt文件的示例
2020/09/27 Python
荷兰皇家航空公司中国官网:KLM中国
2017/12/13 全球购物
什么是类的返射机制
2016/02/06 面试题
如果NULL和0作为空指针常数是等价的,那我到底该用哪一个
2014/09/16 面试题
不用游标的SQL语句有哪些
2012/09/07 面试题
介绍一下gcc特性
2015/10/31 面试题
普罗米修斯教学反思
2014/02/06 职场文书
作文评语大全
2014/04/23 职场文书
活动倡议书范文
2014/05/13 职场文书
个人考核材料
2014/05/15 职场文书
关于环保的宣传稿
2015/07/23 职场文书
怎样做好公众演讲能力?
2019/08/28 职场文书
Prometheus 监控MySQL使用grafana展示
2021/08/30 MySQL