PHP合并数组

1.arrary_merge

示例代码:

$arr1 = array(1, 2, 3, 4, 5);
$arr2 = array(1, 2, 6, 7, 8, 9, 10);
$result1 = array_merge($arr1, $arr2);

$arr3 = array("name" => "itbsl", "age" => 13, "sex" => "Male");
$arr4 = array("name" => "火龙果", "age" => 13, "sex" => "Male");
$result2 = array_merge($arr3, $arr4);

echo "<pre>";
var_dump($result1);
var_dump($result2);

运行上面的代码,输出结果如下图所示:

普通数组合并时,会把第二个数组放到第一个数组后面,拼接后返回。

但是对于键值对的数组来说,如果有相同的键,那么第二个数组会覆盖第一个数组相同的键所对应的值。

2.通过+合并

示例代码:

$arr1 = array(1, 2, 3, 4, 5);
$arr2 = array(1, 2, 6, 7, 8, 9, 10);
$result1 = $arr1 + $arr2;

$arr3 = array("name" => "itbsl", "age" => 13, "sex" => "Male");
$arr4 = array("name" => "火龙果", "age" => 13, "sex" => "Male", "id" => "411521");
$result2 = $arr3 + $arr4;

echo "<pre>";
var_dump($result1);
var_dump($result2);

运行上面的代码,输出结果如下图所示:

可以看到,对于用"+"来合并两个数组而言,无论是普通数组还是键值对型数组,只要下标相同或者键相同,都是前者覆盖后者。这一点需要注意。

3.连接两个数组

array_combine()函数会得到一个新数组,它由一组提交的键和对应的值组成。

示例代码:

$arr1 = array("A","B","C","D");
$arr2 = array("paul","itbsl","Golang","PHP");
$result = array_combine($arr1,$arr2);
echo ‘<pre>‘;
var_dump($result);

运行上面的代码,输出结果如下图所示:

注意:如果需要合并数组成为上面的形式,那么合并的两个数组的长度必须相等,也就是count($arr1) == count($arr2),并且不能为空

4.递归追加数组

array_merge_recursive()函数与array_merge()相同,可以将两个或多个数组合并在一起,形成一个联合的数组.两者之间的区别在于,当某个输入数组中的某个键己经存在于结果数组中时该函数会采取不同的处理方式.array_merge()会覆盖前面存在的键/值对,替换为当前输入数组中的键/值对,而array_merge_recursive()将把两个值合并在一起,形成一个新的数组,并以原有的键作为数组名。

示例代码:

$arr3 = array("name" => "itbsl", "age" => 13, "sex" => "Male");
$arr4 = array("name" => "火龙果", "age" => 13, "sex" => "Male");
$result2 = array_merge_recursive($arr3, $arr4);

echo "<pre>";
var_dump($result2);

运行上面的代码,输出结果如下图所示:

原文地址:https://www.cnblogs.com/itbsl/p/9906017.html

时间: 2024-12-27 09:56:46

PHP合并数组的相关文章

php 合并数组 &quot;+&quot;和&quot;array_merge&quot;的区别

主要区别是两个或者多个数组中如果出现相同键名,键名分为字符串或者数字,需要注意 1)键名为数字时,array_merge()不会覆盖掉原来的值,但+合并数组则会把最先出现的值作为最终结果返回,而把后面的数组拥有相同键名的那些值“抛弃”掉(不是覆盖) 2)键名为字符时,+仍然把最先出现的值作为最终结果返回,而把后面的数组拥有相同键名的那些值“抛弃”掉,但array_merge()此时会覆盖掉前面相同键名的值 <?php$array1 = array(0 => 'zero_a', 2 => 

PHP合并数组array_merge函数运算符加号与的区别

两个的区别是:1.数组键名为数字键名时,要合并的两个数组中有同名数字KEY的时候,使用array_merge()不会覆盖掉原来的值,而使用"+"合并数组则会把最先出现的值作为最终结果返回,而把后面的数组拥有相同键名的那些值"抛弃"掉(注意:不是覆盖而是保留最先出现的那个值).例子: $array1 = array(1=>'0′);$array2 = array(1=> "data");$result1 = $array2 + $arr

合并数组的小技巧

合并数组 如果你要合并两个数组,一般情况之下你都会使用Array.concat()函数: var array1 = [1,2,3]; var array2 = [4,5,6]; console.log(array1.concat(array2)); // [1,2,3,4,5,6]; 然后这个函数并不适合用来合并两个大型的数组,因为其将消耗大量的内存来存储新创建的数组.在这种情况之个,可以使用Array.pus().apply(arr1,arr2)来替代创建一个新数组.这种方法不是用来创建一个新

php中array_merge合并数组详解

如果键名有重复,该键的键值为最后一个键名对应的值(后面的覆盖前面的).如果数组是数字索引的,则键名会以连续方式重新索引. 注释:如果仅仅向 array_merge() 函数输入了一个数组,且键名是整数,则该函数将返回带有整数键名的新数组,其键名以 0 开始进行重新索引. 代码如下 复制代码 <?php$a=array(3=>"Horse",4=>"Dog");print_r(array_merge($a));?> 将一个或多个数组的单元合并起

JS合并数组的几种方法及优劣比较

这篇文章主要介绍了JS合并数组的几种方法及优劣比较,本文讲解了concat.循环插入.reduce等方法合并数组,并对它们的优劣做了比较,需要的朋友可以参考下 本文属于JavaScript的基础技能. 我们将学习结合/合并两个JS数组的各种常用方法,并比较各种方法的优缺点. 我们先来看看具体的场景: 代码如下: var q = [ 5, 5, 1, 9, 9, 6, 4, 5, 8];var b = [ "tie", "mao", "csdn",

PHP 合并数组 追加数组例子

PHP合并数组我们可以使用array_merge()函数,array_merge()函数返回一个联合的数组.所得到的数组以第一个输入数组参数开始,按后面数组参数出现的顺序依次追加.其形式为: array array_merge (array array1 array2…,arrayN) 下面是一个PHP合并数组的例子: <?php $fruits = array("apple","banana","pear"); $numbered = a

PHP合并数组保留key值

PHP合并数组,键值不变 尝试了好几个合并数组的函数, 但是都是把key值重置, 导致key值丢失(因为key值是要用到的) 大大说, 最好用数组的相关函数, 网上随意找了下, 还是没找到. 因为自己使用的是+, 但是要注意, 前后都必须是数组, 如果是空值的时候, 需要初始化为array(), 不然就会报错 找到一篇文章, 就复制过来保留着了. PHP中有合并数组的函数 array_merge(),但是这个函数有一个缺点,就是在使用的时候,会使数组为数字的键值重置,丢失原来的键值: 后来,找了

“举一反三”合并数组--《剑指offer》

与上篇思想一样,或者说是替换数字的另一种版本吧,题目如下: 有两个已经排好的数组A1和A2,A1的末尾有足够的空间来容纳A2,我们将A2数组插入到A1中,继续保持已经排序: 这样看来就和替换空格相似了,如果我们在A1数组从头到尾复制数字,这样导致A1数组后面的数一直不断往后移动,复杂度一样是O(n2),所以,我们来举一反三: //2014-5-18 //举一反三,合并数组 #include <iostream> using namespace std; const int length = 5

PHP中使用函数array_merge()合并数组

如果明白数组其实就是map的话,我想你就会明白array_merge为什么要这么实现了 PHP中合并数组分成两种情况 1.如果这两个数组中有相同的字符串键名: <?php header('Content-type: text/html; charset=utf8'); $book1 = array('linux'=>'linux服务器配置与管理','php'=>'PHP程序设计'); $book2 = array('linux'=>'服务器配置与管理','jsp'=>'PHP

PHP按值合并数组

1 /** 2 * PHP按值合并数组 3 * 4 */ 5 function my_array_merge(&$array1, &$array2) { 6 $result = Array(); 7 foreach($array1 as $key => &$value) { 8 $result[$key] = array_merge($value, $array2[$key]); 9 } 10 return $result; 11 }