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 相关文章推荐
IIS6的PHP最佳配置方法
Mar 19 PHP
php提示Call-time pass-by-reference has been deprecated in的解决方法[已测]
May 06 PHP
php session劫持和防范的方法
Nov 12 PHP
php对数组排序的简单实例
Dec 25 PHP
PHP 面向对象程序设计(oop)学习笔记 (四) - 异常处理类Exception
Jun 12 PHP
smarty模板局部缓存方法使用示例
Jun 17 PHP
PHP多线程类及用法实例
Dec 03 PHP
PHP实现递归复制整个文件夹的类实例
Aug 03 PHP
PHP获取指定日期是星期几的实现方法
Nov 30 PHP
Laravel中log无法写入问题的解决
Jun 17 PHP
PHP格式化显示时间date()函数代码
Oct 03 PHP
PHP实现与java 通信的插件使用教程
Aug 11 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
使用eAccelerator加密PHP程序
2008/10/03 PHP
PHP获取163、gmail、126等邮箱联系人地址【已测试2009.10.10】
2009/10/11 PHP
file_get_contents获取不到网页内容的解决方法
2013/03/07 PHP
PHPMailer发送HTML内容、带附件的邮件实例
2014/07/01 PHP
php文件操作相关类实例
2015/06/18 PHP
PHP定时执行任务的3种方法详解
2015/12/21 PHP
PHP开发中常用的十个代码样例
2016/02/02 PHP
php实现的pdo公共类定义与用法示例
2017/07/19 PHP
laravel框架使用阿里云短信发送消息操作示例
2020/02/15 PHP
TNC vs IO BO3 第一场2.13
2021/03/10 DOTA
javascript 设置某DIV区域内的checkbox复选框
2009/11/30 Javascript
jquery弹出关闭遮罩层实例
2013/08/06 Javascript
JavaScript移除数组元素减少长度的方法
2013/09/05 Javascript
JS 数字转换研究总结
2013/12/26 Javascript
微信企业号开发之微信考勤百度地图定位
2015/09/11 Javascript
localStorage实现便签小程序
2016/11/28 Javascript
javascript中json基础知识详解
2017/01/19 Javascript
JavaScript 自定义事件之我见
2017/09/25 Javascript
基于vue-cli 打包时抽离项目相关配置文件详解
2018/03/07 Javascript
从零开始搭建webpack+react开发环境的详细步骤
2018/05/18 Javascript
[19:26]TNC vs EG (BO3)
2018/06/07 DOTA
[01:18:36]LGD vs VP Supermajor 败者组决赛 BO3 第一场 6.10
2018/07/04 DOTA
Python 元类使用说明
2009/12/18 Python
Java及python正则表达式详解
2017/12/27 Python
如何使用VSCode愉快的写Python于调试配置步骤
2018/04/06 Python
Python 音频生成器的实现示例
2019/12/24 Python
Tkinter中复选菜单是否被选中的判断与设置方式
2020/03/04 Python
Python短信轰炸的代码
2020/03/25 Python
pip安装提示Twisted错误问题(Python3.6.4安装Twisted错误)
2020/05/09 Python
浅谈Python爬虫原理与数据抓取
2020/07/21 Python
总经理助理岗位职责范本
2014/07/20 职场文书
班主任自我评价范文
2015/03/11 职场文书
考勤制度通知
2015/04/25 职场文书
如何利用 CSS Overview 面板重构优化你的网站
2021/10/24 HTML / CSS
Windows server 2012 配置Telnet以及用法详解
2022/04/28 Servers
Tomcat安装使用及部署Web项目的3种方法汇总
2022/08/14 Servers