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

两个的区别是:
1.数组键名为数字键名时,要合并的两个数组中有同名数字KEY的时候,使用array_merge()不会覆盖掉原来的值,而使用“+”合并数组则会把最先出现的值作为最终结果返回,而把后面的数组拥有相同键名的那些值“抛弃”掉(注意:不是覆盖而是保留最先出现的那个值)。例子:

$array1 = array(1=>’0′);
$array2 = array(1=> “data”);
$result1 =
$array2 + $array1;/*结果为$array2的值*/
print_r($result);
$result = $array1 +
$array2 ;/*结果为$array1的值*/
print_r($result);
$result3 =
array_merge($array2,$array1);/*结果为$array2和$array1的值,键名被重新分配*/
print_r($result3);
$result4
=
array_merge($array1,$array2);/*结果为$array1和$array2的值,键名被重新分配*/
print_r($result4);

输出结果为:
Array ( [1] => data )
Array ( [1] => 0 )
Array (
[0]
=> data
[1] => 0
)
Array
(
[0] => 0
[1] =>
data
)

2.当相同数组键名为字符时,“+”运算符与键名为数字时一样,但array_merge()此时会覆盖掉前面相同键名的值。
例子:
$array1
= array(‘asd’=>’0′);
$array2 = array(‘asd’ => “data”);
$result1 =
$array2 + $array1;/*结果为$array2的值*/
print_r($result);
$result = $array1 +
$array2 ;/*结果为$array1的值*/
print_r($result);
$result3 =
array_merge($array2,$array1);/*结果为$array1*/
print_r($result3);
$result4 =
array_merge($array1,$array2);/*结果为$array2*/
print_r($result4);
输出结果为:

Array ( [asd] => data )
Array ( [asd] => 0 )
Array ( [asd] =>
0 )
Array ( [asd] => data )

PHP合并数组array_merge函数运算符加号与的区别,布布扣,bubuko.com

时间: 2024-12-24 22:21:00

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

PHP数组处理函数举例

在PHP中,存储在数组中的值成为数组元素,数组有一维数组和多维数组之分,每个数组元素的索引也称为关键字,访问数组元素可以通过索引.数组处理函数举例如下: 一.创建数组 1.使用array()函数创建数组:array array([$key=>]$value,...) $key=>$value,定义了关键字的键名和值,自定义键名可以字符串或数字.如果省略键名,函数会自动产生从0开始的整数作为键名.如果只对某个给出的值没有指定键名,则键名取该值前面最大的整数键名+1后的值. 注意:①可以使用pri

PHP合并数组保留key值

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

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 合并数组 &quot;+&quot;和&quot;array_merge&quot;的区别

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

php中array_merge合并数组详解

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

php 通过array_merge()和array+array合并数组的区别和效率比较

众所周知合并两个数组可以使用array_merge(),这是php提供的一个函数.另外还可以通过 array 的方式来合并数组,这两种直接有什么区别,哪一个的效率更高呢? array_merge() 格式: array array_merge ( array - ] ) 注意(区别): 如果合并的数组使用关联索引,数组中有相同的键名,则该键名后面的值将覆盖前一个值. 如果合并的数组使用数字索引,数组中有相同的键名, 后面的值将不会覆盖原来的值,而是附加到后面. 如果只给了一个数组并且该数组是数字

PHP数组合并+与array_merge的区别分析 &amp; 对多个数组合并去重技巧

PHP中两个数组合并可以使用+或者array_merge,但之间还是有区别的,而且这些区别如果了解不清楚项目中会要命的! 主要区别是两个或者多个数组中如果出现相同键名,键名分为字符串或者数字,需要注意 1)键名为数字时,array_merge()后面的值将不会覆盖原来的值,而是附加到后面,但+合并数组则会把最先出现的值作为最终结果返回,而把后面的数组拥有相同键名的那些值“抛弃”掉(不是覆盖) 2)键名为字符串时,array_merge()此时会覆盖掉前面相同键名的值,但+仍然把最先出现的值作为最

数组操作函数7!

array_unique()    剔除数组重复项,生成新数组 数组后增加元素--在数组后加个中括号[] array_unshift()    在数组头部插入元素,返回int值 array_shift()    返回删除的元素,从头部开始删除,如果删除失败返回null (如果第一个元素为0时,用is_null()函数判断) array_pop()    从底部删除一个元素. unset()    删除变量(已知数组元素个数) array_keys()    得到数组的键名,并返回以数组形式 ar

php 数组常用函数

PHP数组中常用的函数: 1.//array_values - 返回数组中所有的值 $array = array("name"=>"zhangsan","age"=>"10","sex"=>"man"); $tem= array_values($array); echo "<pre>"; print_r($tem); echo "