array_merge

主要区别是两个或者多个数组中如果出现相同键名,键名分为字符串或者数字,需要注意

1)键名为数字时,array_merge()不会覆盖掉原来的值,但+合并数组则会把最先出现的值作为最终结果返回,而把后面的数组拥有相同键名的那些值“抛弃”掉(不是覆盖)

2)键名为字符时,+仍然把最先出现的值作为最终结果返回,而把后面的数组拥有相同键名的那些值“抛弃”掉,但array_merge()此时会覆盖掉前面相同键名的值

需要注意的是数组键形式 ‘数字‘ 等价于 数字
$a = array(‘a‘,‘b‘);
$b = array(‘c‘, ‘d‘);
$c = $a + $b;
var_dump($a);
var_dump(array_merge($a, $b));

$a = array(0 => ‘a‘, 1 => ‘b‘);
$b = array(0 => ‘c‘, 1 => ‘b‘);
$c = $a + $b;
var_dump($c);
var_dump(array_merge($a, $b));

$a = array(‘a‘, ‘b‘);
$b = array(‘0‘ => ‘c‘, 1 => ‘b‘);
$c = $a + $b;
var_dump($c);
var_dump(array_merge($a, $b));

$a = array(0 => ‘a‘, 1 => ‘b‘);
$b = array(‘0‘ => ‘c‘, ‘1‘ => ‘b‘);
$c = $a + $b;
var_dump($c);
var_dump(array_merge($a, $b));
结果
array
=> string ‘a‘ (length=1)
=> string ‘b‘ (length=1)
=> string ‘c‘ (length=1)
=> string ‘d‘ (length=1)

array
=> string ‘a‘ (length=1)
=> string ‘b‘ (length=1)

array
=> string ‘a‘ (length=1)
=> string ‘b‘ (length=1)
=> string ‘c‘ (length=1)
=> string ‘b‘ (length=1)

array
=> string ‘a‘ (length=1)
=> string ‘b‘ (length=1)

array
=> string ‘a‘ (length=1)
=> string ‘b‘ (length=1)
=> string ‘c‘ (length=1)
=> string ‘b‘ (length=1)

array
=> string ‘a‘ (length=1)
=> string ‘b‘ (length=1)

array
=> string ‘a‘ (length=1)
=> string ‘b‘ (length=1)
=> string ‘c‘ (length=1)
=> string ‘b‘ (length=1)

时间: 2024-10-20 10:42:46

array_merge的相关文章

array_merge函数的注意事项

array_merge — 合并一个或多个数组 array_merge() 将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面.返回作为结果的数组. 如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值.然而,如果数组包含数字键名,后面的值将不会覆盖原来的值,而是附加到后面. 如果只给了一个数组并且该数组是数字索引的,则键名会以连续方式重新索引. array_merge will return NULL if any of the arguments are NU

php 合并数组 "+"和"array_merge"的区别

主要区别是两个或者多个数组中如果出现相同键名,键名分为字符串或者数字,需要注意 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

php中array_merge合并数组详解

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

array_merge和array_values重排索引数组性能比较

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

PHP array_merge()函数实现多个数组合并

php代码段: $arr1 = array(     'name' => '小明',     'sex' => 1,     'age' => 24,  ); $arr2 = array(     'type' => 'IT',     'status' => '正常',     'flag' => 1,      'sort' => 100, ); //假如以上两个数组是从两个表里读取的数据,现在需要将他们合并到一起 $userInfo = array_merg

有关php array_merge函数的用法

分享下array_merge函数的用法. PHP中合并数组分成两种情况:1.如果这两个数组中有相同的字符串键名 2.如果这两个数组中有相同的数值键名 重新认识php array_merge函数 今天因一个Bug重新审视了下array_merge()这个函数.定义:array_merge — 合并一个或多个数组规范:array array_merge(array $array1 [, array $...])说明:1. 将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面.2. 如

PHP中array_merge和array相加的区别分析

今天处理一个这样的问题:如何获取字符键名相同值不同的两个数组值集合,用array_merge和数组相加都不可行,让我认真比较了下PHP中array_merge和array相加的区别 首先来看看键名是string,两者区别: 复制代码代码如下: <?php$arr1 = array('a'=>'PHP');$arr2 = array('a'=>'JAVA');//如果键名为字符,且键名相同,array_merge()后面数组元素值会覆盖前面数组元素值print_r(array_merge(

[单选题]&lt;?php$a=array(3=&gt;&quot;Horse&quot;,4=&gt;&quot;Dog&quot;);print_r(array_merge($a));?&gt;

Array ( [0] => Horse [1] => Dog ) Array ( [3] => Horse [4] => Dog ) 答案A 实例 把两个数组合并为一个数组: <?php $a1=array("red","green"); $a2=array("blue","yellow"); print_r(array_merge($a1,$a2)); ?> 运行实例 定义和用法 arr