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" ...
随机推荐
- Git使用基础篇
Git使用基础篇 前言 Git是一个分布式的版本控制工具,本篇文章从介绍Git开始,重点在于介绍Git的基本命令和使用技巧,让你尝试使用Git的同时,体验到原来一个版 本控制工具可以对开发产生如此之多 ...
- dom元素操作(动态事件绑定)
遇到的问题:动态生成的内容,事件绑定会出错. 例子:http://snowinmay.net/jqm/dom-learn2.html 1.绑定事件对动态生成的新元素无效. 问题描述:bind事件绑定后 ...
- day_6.6 py
Tftp 下载器演示 2018-6-6 14:11:09 #!/usr/bin/env python #!--*--coding:utf-8 --*-- #!@Time :2018/6/6 11:55 ...
- python爬虫+使用cookie登录豆瓣
2017-10-09 19:06:22 版权声明:本文为博主原创文章,未经博主允许不得转载. 前言: 先获得cookie,然后自动登录豆瓣和新浪微博 系统环境: 64位win10系统,同时装pytho ...
- mapper.xml
#{}如果是字符串就不用加引号,否则报错,${}也一样,不是占位符需要加
- PAT甲级1075 PAT Judge
题目:https://pintia.cn/problem-sets/994805342720868352/problems/994805393241260032 题意: 有m次OJ提交记录,总共有k道 ...
- Windows环境下安装Linux
怎样实现在现有的Windows系统上安装Linux,实现双系统启动
- [No0000ED]IPSec策略之管理
IP安全策略 @echo off :again set num= set ippolicyname= set ismmpfs= set keytime= set keyexpress= set new ...
- bilibili的直播第三方IJKMediaFramework.framework下载打包使用教程
参考和引用的地址: http://www.code4app.com/thread-8941-1-1.html http://blog.csdn.net/cccallen/article/details ...
- linux状态及原理全剖析
Table of Contents 1 linux 1.1 proc filesystem 1.1.1 /proc 1.1.1.1 /proc/meminfo 1.1.1.2 /proc/stat 1 ...