百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT技术 > 正文

php数组合并有几种方式

wptr33 2025-03-03 20:31 22 浏览

原文链接:
https://www.php.cn/php-ask-477246.html

php数组合并有4种方式,分别为:1、使用加号“+”运算符,语法“数组1+数组2+..”;2、使用array_push()函数;3、使用array_merge()函数;4、使用array_merge_recursive()函数。

本教程操作环境:windows7系统、PHP7.1版,DELL G3电脑

1、使用加号“+”运算符:

直接将两个数组的值合并成为一个数组;


$a = [1,2,3,'a'=>'a'];

$b = ['a'=>'b',4,5,'b'=>'c',6,7,'a'];

$c = $a + $b;

print_r($a);

print_r($b);

print_r($c);

//$a

Array

(

[0] => 1

[1] => 2

[2] => 3

[a] => a

)

//$b

Array

(

[a] => b

[0] => 4

[1] => 5

[b] => c

[2] => 6

[3] => 7

[4] => a

)

//$c

Array

(

[0] => 1

[1] => 2

[2] => 3

[a] => a

[b] => c

[3] => 7

[4] => a

)


采用"+"合并数组,如果键相同的情况下,前面的数组值会覆盖掉后面的数组值。

2、使用array_push()函数

将某个变量放入到另一个数组当中


$a = [1,'a'=>'aa',2,'b'=>'bb'];

$b = [1,'a'=>'aa',2,'b'=>'bb'];

print_r($a);

print_r($b);

array_push($a, $b);

print_r($a);

//$a

Array

(

[0] => 1

[a] => aa

[1] => 2

[b] => bb

)

//$b

Array

(

[0] => 1

[a] => aa

[1] => 2

[b] => bb

)

// array_push过后的$a

Array

(

[0] => 1

[a] => aa

[1] => 2

[b] => bb

[2] => Array

(

[0] => 1

[a] => aa

[1] => 2

[b] => bb

)

)


通过打印的值可以看出,变量进入数组后,对应的数字索引必然是当前数组中最小的数字索引+1(如果当前数组不存在数字索引,新增元素对应的索引为0)

3、使用array_merge()函数

直接将两个数组进行合并,两个数组键相同的情况,后面数组的值覆盖前面数组的值


$a = [1,'2'=>2,'a'=>'a','b'=>'b'];

$b = [1,'2'=>3,'a'=>'c','b'=>'d','c'=>'e'];

$c = array_merge($a,$b);

print_r($a);

print_r($b);

print_r($c);

//$a

Array

(

[0] => 1

[2] => 2

[a] => a

[b] => b

)

//$b

Array

(

[0] => 1

[2] => 3

[a] => c

[b] => d

[c] => e

)

//$c

Array

(

[0] => 1

[1] => 2

[a] => c

[b] => d

[2] => 1

[3] => 3

[c] => e

)


可以看出,两个数组键相同的情况,后面数组的值覆盖前面数组的值。但是对于数字索引或者数字字符串索引,会按照顺序进行重置(第一个数组的第一个数字索引元素从0开始依次填充)

4、使用array_merge_recursive()函数

合并数组,遇到相同的键将该键中值合并为一个子数组


$a = [1,'2'=>2,'a'=>'a','b'=>'b'];

$b = [1,'2'=>3,'a'=>'a','b'=>'d','c'=>'e'];

$c = array_merge_recursive($a,$b);

print_r($a);

print_r($b);

print_r($c);

//$a

Array

(

[0] => 1

[2] => 2

[a] => a

[b] => b

)

//$b

Array

(

[0] => 1

[2] => 3

[a] => a

[b] => d

[c] => e

)

//$c

Array

(

[0] => 1

[1] => 2

[a] => Array

(

[0] => a

[1] => a

)

[b] => Array

(

[0] => b

[1] => d

)

[2] => 1

[3] => 3

[c] => e

)


采用"array_merge_recursive"方法时,会将相同键的元素,整合成为一个新的数组,保持键名不变,作为合并数组($a与$b组合后的数组)的一个子元素。但是对于数字索引或者数字字符串索引,会按照顺序进行重置(第一个数组的第一个数字索引元素从0开始依次填充)。即使对应的数字索引相同,也不会将相同索引的元素整合成功一个子数组。


正确的sql语句:

1、SELECT own_id, dotime,note ,AES_DECRYPT(price,'66683821') AS jfprice,dNodeText FROM zb_yiduozhang2 WHERE left(`jSortID`,length('1001001'))= '1001001' AND own_id='66683821'

相关推荐

redis的八种使用场景

前言:redis是我们工作开发中,经常要打交道的,下面对redis的使用场景做总结介绍也是对redis举报的功能做梳理。缓存Redis最常见的用途是作为缓存,用于加速应用程序的响应速度。...

基于Redis的3种分布式ID生成策略

在分布式系统设计中,全局唯一ID是一个基础而关键的组件。随着业务规模扩大和系统架构向微服务演进,传统的单机自增ID已无法满足需求。高并发、高可用的分布式ID生成方案成为构建可靠分布式系统的必要条件。R...

基于OpenWrt系统路由器的模式切换与网页设计

摘要:目前商用WiFi路由器已应用到多个领域,商家通过给用户提供一个稳定免费WiFi热点达到吸引客户、提升服务的目标。传统路由器自带的Luci界面提供了工厂模式的Web界面,用户可通过该界面配置路...

这篇文章教你看明白 nginx-ingress 控制器

主机nginx一般nginx做主机反向代理(网关)有以下配置...

如何用redis实现注册中心

一句话总结使用Redis实现注册中心:服务注册...

爱可可老师24小时热门分享(2020.5.10)

No1.看自己以前写的代码是种什么体验?No2.DooM-chip!国外网友SylvainLefebvre自制的无CPU、无操作码、无指令计数器...No3.我认为CS学位可以更好,如...

Apportable:拯救程序员,IOS一秒变安卓

摘要:还在为了跨平台使用cocos2d-x吗,拯救objc程序员的奇葩来了,ApportableSDK:FreeAndroidsupportforcocos2d-iPhone。App...

JAVA实现超买超卖方案汇总,那个最适合你,一篇文章彻底讲透

以下是几种Java实现超买超卖问题的核心解决方案及代码示例,针对高并发场景下的库存扣减问题:方案一:Redis原子操作+Lua脚本(推荐)//使用Redis+Lua保证原子性publicbo...

3月26日更新 快速施法自动施法可独立设置

2016年3月26日DOTA2有一个79.6MB的更新主要是针对自动施法和快速施法的调整本来内容不多不少朋友都有自动施法和快速施法的困扰英文更新日志一些视觉BUG修复就不翻译了主要翻译自动施...

Redis 是如何提供服务的

在刚刚接触Redis的时候,最想要知道的是一个’setnameJhon’命令到达Redis服务器的时候,它是如何返回’OK’的?里面命令处理的流程如何,具体细节怎么样?你一定有问过自己...

lua _G、_VERSION使用

到这里我们已经把lua基础库中的函数介绍完了,除了函数外基础库中还有两个常量,一个是_G,另一个是_VERSION。_G是基础库本身,指向自己,这个变量很有意思,可以无限引用自己,最后得到的还是自己,...

China's top diplomat to chair third China-Pacific Island countries foreign ministers' meeting

BEIJING,May21(Xinhua)--ChineseForeignMinisterWangYi,alsoamemberofthePoliticalBureau...

移动工作交流工具Lua推出Insights数据分析产品

Lua是一个适用于各种职业人士的移动交流平台,它在今天推出了一项叫做Insights的全新功能。Insights是一个数据平台,客户可以在上面实时看到员工之间的交流情况,并分析这些情况对公司发展的影响...

Redis 7新武器:用Redis Stack实现向量搜索的极限压测

当传统关系型数据库还在为向量相似度搜索的性能挣扎时,Redis7的RedisStack...

Nginx/OpenResty详解,Nginx Lua编程,重定向与内部子请求

重定向与内部子请求Nginx的rewrite指令不仅可以在Nginx内部的server、location之间进行跳转,还可以进行外部链接的重定向。通过ngx_lua模块的Lua函数除了能实现Nginx...