php中合并数组的常见方法

这篇具有很好参考价值的文章主要介绍了php中合并数组的常见方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

你好, 我是程序猿零壹。

相信各位phper在日常开发中,会经常遇到需要合并数组的场景。那么,在php中都有哪一些方法可以用来合并数组呢。

第一种,使用“+”运算符

使用加号“+”运算符,可以直接将两个数组合并成一个数组。

示例代码:

<?php
$a = [1,2,3,'a'=>'a'];
$b = ['a'=>'aa','b'=>'bb',4,5,6,7,'c'=>'cc',8];
$c = $a + $b;
var_dump($a);
var_dump($b);
var_dump($c);

输出结果:

// $a
array(4) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
  ["a"]=>
  string(2) "a"
}

// $b
array(8) {
  ["a"]=>
  string(2) "aa"
  ["b"]=>
  string(2) "bb"
  [0]=>
  int(4)
  [1]=>
  int(5)
  [2]=>
  int(6)
  [3]=>
  int(7)
  ["c"]=>
  string(2) "cc"
  [4]=>
  int(8)
}

// $c
array(8) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
  ["a"]=>
  string(2) "a"
  ["b"]=>
  string(2) "bb"
  [3]=>
  int(7)
  ["c"]=>
  string(2) "cc"
  [4]=>
  int(8)
}

注意:使用加号“+”运算符进行数组合并,两个数组元素键相同的情况下,前面的元素会覆盖后面的元素。

第二种,使用array_merge()函数

用法:array_merge(array1,array2,array3...)

array_merge()函数用于将一个或者多个数组合并成一个数组。

如果两个或者多个数组元素有相同的键名,则最后的元素会覆盖其他元素。

示例代码:

<?php
$a = [1,2,3,'a'=>'a'];
$b = ['a'=>'aa','b'=>'bb',4,5,6,7,'c'=>'cc',8];
$c = array_merge($a,$b);
$d = [];
$e = array_merge($a,$d);
$f = array_merge($d,$b);
$g = array_merge([],[]);
var_dump($a);
var_dump($b);
var_dump($c);
var_dump($e);
var_dump($f);
var_dump($g);

输出结果:

// $a
array(4) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
  ["a"]=>
  string(1) "a"
}
// $b
array(8) {
  ["a"]=>
  string(2) "aa"
  ["b"]=>
  string(2) "bb"
  [0]=>
  int(4)
  [1]=>
  int(5)
  [2]=>
  int(6)
  [3]=>
  int(7)
  ["c"]=>
  string(2) "cc"
  [4]=>
  int(8)
}
// $c
array(11) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
  ["a"]=>
  string(2) "aa"
  ["b"]=>
  string(2) "bb"
  [3]=>
  int(4)
  [4]=>
  int(5)
  [5]=>
  int(6)
  [6]=>
  int(7)
  ["c"]=>
  string(2) "cc"
  [7]=>
  int(8)
}
// $e
array(4) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
  ["a"]=>
  string(1) "a"
}
// $f
array(8) {
  ["a"]=>
  string(2) "aa"
  ["b"]=>
  string(2) "bb"
  [0]=>
  int(4)
  [1]=>
  int(5)
  [2]=>
  int(6)
  [3]=>
  int(7)
  ["c"]=>
  string(2) "cc"
  [4]=>
  int(8)
}
// $g
array(0) {
}

注意:两个数组的元素键相同的情况下,后面的元素会覆盖前面的元素。但如果数组的索引是数字索引或者数字字符串索引,合并后的数组的数字索引会按照顺序重置,从第一个数组的第一个数字索引元素从0开始依次填充。

第三种,使用array_merge_recursive()函数

用法:array_merge_recursive(array1,array2,array3...)

array_merge_recursive()函数用于将一个或者多个数组合并成一个数组。

示例代码:

<?php
$a = [1,2,3,'a'=>'a'];
$b = ['a'=>'aa','b'=>'bb',4,5,6,7,'c'=>'cc',8];
$c = array_merge_recursive($a,$b);
var_dump($a);
var_dump($b);
var_dump($c);

输出结果:

// $a
array(4) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
  ["a"]=>
  string(1) "a"
}
// $b
array(8) {
  ["a"]=>
  string(2) "aa"
  ["b"]=>
  string(2) "bb"
  [0]=>
  int(4)
  [1]=>
  int(5)
  [2]=>
  int(6)
  [3]=>
  int(7)
  ["c"]=>
  string(2) "cc"
  [4]=>
  int(8)
}
// $c
array(11) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
  ["a"]=>
  array(2) {
    [0]=>
    string(1) "a"
    [1]=>
    string(2) "aa"
  }
  ["b"]=>
  string(2) "bb"
  [3]=>
  int(4)
  [4]=>
  int(5)
  [5]=>
  int(6)
  [6]=>
  int(7)
  ["c"]=>
  string(2) "cc"
  [7]=>
  int(8)
}

注意:如果遇到两个或者多个数组的元素的键相同,array_merge_recursive()不会进行键名覆盖,而是将多个相同键名递归组成一个数组。如果数组的索引是数字索引或者数字字符串索引,合并后的数组的数字索引会按照顺序重置,从第一个数组的第一个数字索引元素从0开始依次填充。

第四种,使用array_combine()函数

用法:array_combine(keys,values)

array_combine()函数,通过合并两个数组来创建一个新的数组,其中一个数组元素为键名,另外一个数组的元素为键值。

示例代码:

<?php
$a = [1,2,3];
$b = ['a','b','c'];
$c = array_combine($a,$b);
$d = array_combine($b,$a);
var_dump($c);
var_dump($d);

输出结果: 

// $c
array(3) {
  [1]=>
  string(1) "a"
  [2]=>
  string(1) "b"
  [3]=>
  string(1) "c"
}
// $d
array(3) {
  ["a"]=>
  int(1)
  ["b"]=>
  int(2)
  ["c"]=>
  int(3)
}

注意:键名数组和键值数组的元素个数必须相同!文章来源地址https://www.toymoban.com/news/detail-464512.html

到了这里,关于php中合并数组的常见方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java 连接合并两个数组(Array)的五种方法

    T可以是基础类型,也是类类型

    2024年02月05日
    浏览(43)
  • chatgpt赋能python:Python数组合并操作详解-多种方法实现

    在Python编程中,数组合并是一种非常常见的操作。数组合并操作可以将两个或多个数组简单的合并为一个数组,这样可以方便的对数据进行处理。Python提供了多种方法用于数组合并,下面将对多种实现方法进行介绍。 在Python中,使用“+”操作符可以对两个数组进行简单的拼

    2024年02月14日
    浏览(41)
  • PHP常见的SQL防注入方法

    产生原因主要就是一些数据没有经过严格的验证,然后直接拼接 SQL 去查询。导致产生漏洞,比如: 因为没有对 $_GET[‘id’] 做数据类型验证,注入者可提交任何类型的数据,比如 \\\" and 1= 1 or \\\" 等不安全的数据。如果按照下面方式写,就安全一些。 把 id 转换成 int 类型,就可

    2024年02月07日
    浏览(33)
  • PHP程序的常见漏洞攻击分析

    目录 一、前言 二、如何通过全局变量进行攻击? 三、如何通过远程文件进行攻击?

    2024年02月08日
    浏览(24)
  • PHP接收数据的常见方式及对应的接收方法

    题记:针对开发接口中遇到的各种问题以及知识点,做下总结,感谢相关网友的汇总,在次基础上加以完善自己的理解。 post提交数据的方式,主要体现在http协议头上的Content-Type字段,不同的Content-Type对应不同的http请求体,与之相应的php接收数据方法也不同。 html中的form表单

    2024年02月08日
    浏览(33)
  • PHP开发日志 ━━ 不同方法判断某个数组中是否存在指定的键名,测试哪种方法效率高

    我们可以用 isset($arr[\\\'a\\\']) 或者 array_key_exists(\\\'a\\\', $arr) 来判断 \\\'a\\\' 键名是否存在与 $arr 数组。 那么这两种方式哪个运行速度快呢? 不多废话了,现在我们写一段代码来测试一下: 结论是 isset() 更胜一筹。

    2024年02月02日
    浏览(58)
  • Java中合并两个数组的4种方法(How to Merge Two Arrays in Java)

    int[] arr1={1, 2, 3, 4, 5, 6}; //first array int[] arr2={7, 8, 9, 0}; //second array int[] arr3={1, 2, 3, 4, 5, 6, 7, 8, 9, 0} //resultant array There are following ways to merge two arrays: 1.Java arraycopy() method 2.Without using arraycopy() method 3.Java Collections 4.Java Stream API Java arraycopy() is the method of System class which belongs to java.la

    2024年02月11日
    浏览(31)
  • [Vue]常见的循环处理数组方法:forEach some map filter every find等方法

    Array.forEach(callback) 千万注意:forEach() 方法对于空数组是不会执行回调函数的 forEach()方法用于遍历数组中的每一个元素,并将元素传给回调函数, 注意:forEach()中是不支持使用break来中途跳出循环和不支持return操作输出, return只能用于控制循环是否跳出当前循环 语法: 回调有三

    2024年02月10日
    浏览(33)
  • 联想电脑摄像头打不开解决方案看到最后!!!(相信xdm都找了好久的方法)

    今天打视频突然发现我的电脑摄像头打不开了,还以为电脑坏了,搞了一下午终于找到解决方法了!!! 跟我来康看吧。 第一种: 就是自己关闭了权限,先看看自己电脑键盘是否有摄像头按钮,按一下康康是否关闭了摄像头。 第二种: 就是其他应用关闭了摄像头权限,关

    2024年02月11日
    浏览(58)
  • js合并数组对象(将数组中具有相同属性对象合并到一起,组成一个新的数组)

    1.原数组: 2.合并后数组: 3.实现方法: 4.测试: 1.原数组: 2.合并后数组: 3.实现方法一: 测试: 4.实现方法二: 测试:

    2024年02月08日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包