首页 php教程 php手册 PHP数组合并:[“+”运算符]、[array_merge]、[array_merge_recursive]区别

PHP数组合并:[“+”运算符]、[array_merge]、[array_merge_recursive]区别

Jun 14, 2016 am 12:02 AM
array merge php数组 代码 开源 编程 编程语言 软件开发 运算符

1、“+”运算符
规则:
  当两个数组的键名是数字键名或者字符串键名
  $c = $a + $b
  在$a后追加($b在$a中不存在的键名)键名和值
注意:
  1、不覆盖,只是追加不存在的键名和对应的值
  2、键名不重新索引
  3、无论是全部数字键名还是混合,都只是追加键名和值,如果键名相同则不进行追加,即把最先出现的值作为最终结果返回
例1:数字键名

$a = array(
    'a',
);
$b = array(
    'u',
);
$c = $a + $b;
var_dump($c);

output:
array(1) {
  [0]=>
  string(1) "a"
}
登录后复制

 例2:数字键名

$a = array(
    66=>'a',
);
$b = array(
    60=>'u',
    66=>'c'
);
$c = $a + $b;
var_dump($c);

output:
array(2) {
  [66]=>
  string(1) "a"
  [60]=>
  string(1) "u"
}
登录后复制

例3:字符键名

<?php  
$a = array(
    1=>'a',
    2=>'b',
    'c'=>'c',
    'd'=>'d',
);
$b = array(
    1=>'u',
    3=>'v',
    'c'=>'w',
    'd'=>'x',
    'y'=>'y',
    60=>'z',
);
$c = $a + $b;
var_dump($c);
?>

output:
array(7) {
  [1]=>
  string(1) "a"
  [2]=>
  string(1) "b"
  ["c"]=>
  string(1) "c"
  ["d"]=>
  string(1) "d"
  [3]=>
  string(1) "v"
  ["y"]=>
  string(1) "y"
  [60]=>
  string(1) "z"
}
登录后复制

 
2、array array_merge ( array array1 [, array array2 [, array ...]] )
规则:
  array_merge() 将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面。返回作为结果的数组。
  如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值。
  然而,如果数组包含数字键名,后面的值将不会覆盖原来的值,而是附加到后面。
  如果只给了一个数组并且该数组是数字索引的,则键名会以连续方式重新索引。
注意:
  1、数字索引,不会覆盖,值合并后,键名会连续方式重新索引
  2、字符串键名,则该键名后面的值将覆盖前一个值
例1:数字键名

$a = array(
    'a',
);
$b = array(
    'u',
);
$c = array_merge($a, $b);
var_dump($c);

output:
array(2) {
  [0]=>
  string(1) "a"
  [1]=>
  string(1) "u"
}
登录后复制

 例2:数字键名

$a = array(
    66=>'a',
);
$b = array(
    60=>'u',
    66=>'c'
);
$c = array_merge($a, $b);
var_dump($c);

output:
array(3) {
  [0]=>
  string(1) "a"
  [1]=>
  string(1) "u"
  [2]=>
  string(1) "c"
}
登录后复制

例3:字符键名

$a = array(
    1=>'a',
    2=>'b',
    'c'=>'c',
    'd'=>'d',
);
$b = array(
    1=>'u',
    3=>'v',
    'c'=>'w',
    'd'=>'x',
    'y'=>'y',
    60=>'z',
);
$c = array_merge($a, $b);
var_dump($c);

output:
array(8) {
  [0]=>
  string(1) "a"
  [1]=>
  string(1) "b"
  ["c"]=>
  string(1) "w"
  ["d"]=>
  string(1) "x"
  [2]=>
  string(1) "u"
  [3]=>
  string(1) "v"
  ["y"]=>
  string(1) "y"
  [4]=>
  string(1) "z"
}
登录后复制

 

3、array array_merge_recursive ( array array1 [, array ...] )
  array_merge_recursive() 将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面。返回作为结果的数组。
  如果输入的数组中有相同的字符串键名,则这些值会被合并到一个数组中去,这将递归下去,因此如果一个值本身是一个数组,本函数将按照相应的条目把它合并为另一个数组。
  然而,如果数组具有相同的数组键名,后一个值将不会覆盖原来的值,而是附加到后面。
注意:
  1、规则跟array_merge基本相同,只是在处理相同字符键名的时候,采用递归追加
例1:数字键名

$a = array(
    'a',
);
$b = array(
    'u',
);
$c = array_merge_recursive($a, $b);
var_dump($c);

output:
array(2) {
  [0]=>
  string(1) "a"
  [1]=>
  string(1) "u"
}
登录后复制
登录后复制

例2:数字键名

$a = array(
    'a',
);
$b = array(
    'u',
);
$c = array_merge_recursive($a, $b);
var_dump($c);

output:
array(2) {
  [0]=>
  string(1) "a"
  [1]=>
  string(1) "u"
}
登录后复制
登录后复制

例3:字符键名

$a = array(
    1=>'a',
    2=>'b',
    'c'=>'c',
    'd'=>'d',
);
$b = array(
    1=>'u',
    3=>'v',
    'c'=>'w',
    'd'=>'x',
    'y'=>'y',
    60=>'z',
);
$c = array_merge_recursive($a, $b);
var_dump($c);

output:
array(8) {
  [0]=>
  string(1) "a"
  [1]=>
  string(1) "b"
  ["c"]=>
  array(2) {
    [0]=>
    string(1) "c"
    [1]=>
    string(1) "w"
  }
  ["d"]=>
  array(2) {
    [0]=>
    string(1) "d"
    [1]=>
    string(1) "x"
  }
  [2]=>
  string(1) "u"
  [3]=>
  string(1) "v"
  ["y"]=>
  string(1) "y"
  [4]=>
  string(1) "z"
}
登录后复制
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

华为仓颉编程语言官方入门教程发布,一文看懂如何获取通用版本 SDK 华为仓颉编程语言官方入门教程发布,一文看懂如何获取通用版本 SDK Jun 25, 2024 am 08:05 AM

本站6月24日消息,在6月21日HDC2024华为开发者大会主题演讲上,华为终端BG软件部总裁龚体正式官宣了华为自研仓颉编程语言。该语言历经5年研发沉淀,现已开启开发者预览。华为开发者官网现已推出仓颉编程语言官方入门教程视频,方便开发者初步上手理解。该教程将带用户体验仓颉、学习仓颉、应用仓颉,包括用仓颉语言估算圆周率、计算2024年各月的干支纪法、看到二叉树在仓颉语言中的N种表达方式,以及用枚举类型实现代数计算、用接口和扩展实现信号系统模拟,还有用仓颉宏扩展出新语法等等。本站附教程访问地址:ht

历经 5 年研发沉淀,华为下一代编程语言'仓颉”正式开启预览 历经 5 年研发沉淀,华为下一代编程语言'仓颉”正式开启预览 Jun 22, 2024 am 09:54 AM

本站6月21日消息,在今日下午的HDC2024华为开发者大会上,华为终端BG软件部总裁龚体正式官宣了华为自研仓颉编程语言,并发布了HarmonyOSNEXT仓颉语言开发者预览版。这是华为首次公开发布仓颉编程语言。龚体表示:“2019年,仓颉编程语言项目在华为诞生,历经5年研发沉淀,大量研发投入,今日终于和全球开发者见面。仓颉编程语言通过现代语言特性的集成、全方位的编译优化和运行时实现、以及开箱即用的IDE工具链支持,为开发者打造友好开发体验和卓越程序性能。”据介绍,仓颉编程语言是一款面向全场景智

华为开启鸿蒙 HarmonyOS NEXT 仓颉编程语言开发者预览版 Beta 招募 华为开启鸿蒙 HarmonyOS NEXT 仓颉编程语言开发者预览版 Beta 招募 Jun 22, 2024 am 04:07 AM

本站6月21日消息,华为自研仓颉编程语言今日正式亮相,官方宣布开启HarmonyOSNEXT仓颉语言开发者预览版Beta招募。本次升级为开发者预览版尝鲜升级,提供仓颉语言SDK、开发者指南以及相关的DevEcoStudio插件,供开发者使用仓颉语言开发、调试及运行HarmonyOSNext应用。报名周期:2024年6月21日-2024年10月21日申请要求:本次HarmonyOSNEXT仓颉语言开发者预览版Beta招募活动,仅面向以下开发者开放报名:1)已在华为开发者联盟完成实名认证;2)完成H

天津大学、北航深度参与华为'仓颉”,推出首个基于国产编程语言的 AI 智能体编程框架'苍穹” 天津大学、北航深度参与华为'仓颉”,推出首个基于国产编程语言的 AI 智能体编程框架'苍穹” Jun 23, 2024 am 08:37 AM

本站6月22日消息,华为昨日面向全球开发者介绍华为自研编程语言——仓颉(Cangjie)。这是仓颉编程语言的首次公开亮相。本站查询获悉,天津大学、北京航空航天大学深度参与了华为“仓颉”的研发。天津大学:仓颉编程语言编译器天津大学智能与计算学部软件工程团队携手华为仓颉团队,深度参与仓颉编程语言编译器的质量保障研究。据介绍,仓颉编译器是与仓颉编程语言共生的基础软件。在仓颉编程语言的筹备阶段,与之相配的高质量编译器成为核心目标之一。随着仓颉编程语言的演化,仓颉编译器也在不断地升级、改进。五年来,天津大

华为自研仓颉编程语言官网和开发文档上线,首次融入鸿蒙生态 华为自研仓颉编程语言官网和开发文档上线,首次融入鸿蒙生态 Jun 22, 2024 am 03:10 AM

本站6月21日消息,在HDC2024华为开发者大会前,华为自研仓颉编程语言正式亮相,仓颉官网现已上线。官网介绍显示,仓颉编程语言是一款面向全场景智能的新一代编程语言,主打“原生智能化、天生全场景、高性能,强安全”。融入鸿蒙生态,为开发者提供良好的编程体验。本站附官网介绍如下:原生智能化内嵌AgentDSL的编程框架,自然语言&编程语言有机融合;多Agent协同,简化符号表达,模式自由组合,支持各类智能应用开发。天生全场景轻量化可缩放运行时,模块化分层设计,内存再小也能装得下;全场景领域扩

华为纯血鸿蒙生态最后一环!自研仓颉编程语言将首次亮相 华为纯血鸿蒙生态最后一环!自研仓颉编程语言将首次亮相 Jun 21, 2024 pm 03:23 PM

6月21日消息,今天下午,华为开发者大会2024将正式揭幕。“纯血鸿蒙”HarmonyOSNEXT自然是重中之重,按照余承东之前透露的规划,今天下午就可能正式宣布公测,普通消费者也能尝鲜“纯血鸿蒙”了。据爆料,首批支持的手机为Mate60系列和Pura70系列。值得注意的是,作为“纯血鸿蒙”,HarmonyOSNEXT去掉了传统的Linux内核和AOSP安卓开源代码,全栈自研。据新浪科技最新报道称,华为还将补齐鸿蒙生态的最后一环,在大

清华大学与智谱AI重磅开源 GLM-4:掀起自然语言处理新革命 清华大学与智谱AI重磅开源 GLM-4:掀起自然语言处理新革命 Jun 12, 2024 pm 08:38 PM

自2023年3月14日开始,ChatGLM-6B以来,GLM系列模型受到了广泛的关注和认可。特别是在ChatGLM3-6B开源之后,开发者对智谱AI推出的第四代模型充满了期待。而这一期待,随着GLM-4-9B的发布,终于得到了充分的满足。GLM-4-9B的诞生为了赋予小模型(10B及以下)更加强大的能力,GLM技术团队经过近半年的探索,推出了这一全新的第四代GLM系列开源模型:GLM-4-9B。这一模型在保证精度的同时,大幅度压缩了模型大小,具有更快的推理速度和更高的效率。GLM技术团队的探索没

华为:仓颉编程语言自主可控,没有基于任何现有的编程语言演进 华为:仓颉编程语言自主可控,没有基于任何现有的编程语言演进 Jun 22, 2024 pm 12:26 PM

本站6月21日消息,华为自研仓颉编程语言今日正式亮相,并开启HarmonyOSNEXT仓颉语言开发者预览版Beta招募。华为官网仓颉编程语言问答页面显示,仓颉编程语言是一款面向全场景智能的下一代应用编程语言,主打原生智能化,天生全场景,高性能以及强安全,与鸿蒙系统结合,提供良好的编程体验。面向不同业务场景,鸿蒙生态向应用开发者提供仓颉和ArkTS等多语言混合开发能力。仓颉和ArkTS共同发展,在鸿蒙生态中形成优势互补。仓颉更适合有高性能高并发需求的业务场景,仓颉编程语言目标是打造鸿蒙应用在任务并

See all articles