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

 2025-01-15  阅读 290  评论 8  点赞 385

摘要:首先来看看键名是string,两者区别: 复制代码 代码如下:如果键名是数字,两者区别:复制代码 代码如下:特别要注意。关于“array_merge和数组相加的区别”上面已经阐述的很清楚了,回到我最初的问题“如何最有效的获取字符键名相同值不同的两个数组值集合呢”,不会这要对每个

首先来看看键名是string,两者区别:

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

复制代码 代码如下:

<?php
$arr1 = array('a'=>'php');
$arr2 = array('a'=>'java');
//如果键名为字符,且键名相同,array_merge()后面数组元素值会覆盖前面数组元素值
print_r(array_merge($arr1,$arr2)); //array ( [a] => java )
//如果键名为字符,且键名相同,数组相加会将最先出现的值作为结果
print_r($arr1+$arr2); //array ( [a] => php )
?>

如果键名是数字,两者区别:
复制代码 代码如下:

<?php
$arr1 = array("c","php");
$arr2 = array("java","php");
//如果键名为数字,array_merge()不会进行覆盖
print_r(array_merge($arr1,$arr2));//array ( [0] => c [1] => php [2] => java [3] => php )
//如果键名为数组,数组相加会将最先出现的值作为结果,后面键名相同的会被抛弃
print_r($arr1+$arr2);//array ( [0] => c [1] => php )
?>

特别要注意。关于“array_merge和数组相加的区别”上面已经阐述的很清楚了,回到我最初的问题“如何最有效的获取字符键名相同值不同的两个数组值集合呢”,不会这要对每个数组遍历吧,php中还有一个函数,获取你不常用:array_merge_recursive — 递归地合并一个或多个数组,如果输入的数组中有相同的字符串键名,则这些值会被合并到一个数组中去。如下例:
复制代码 代码如下:

<?php
$arr1 = array("a"=>"php","c");
$arr2 = array("a"=>"java","c","ruby");
print_r(array_merge_recursive($arr1, $arr2));
?>

结果如下:
array
(
    [a] => array
        (
            [0] => php
            [1] => java
        )
    [0] => c
    [1] => c
    [2] => ruby
)
这样,就可以获取多个数组中键名相同的元素值集合了。


标签:phpphp教程

评论列表:

  •   tg7187037109
     发布于 2天前回复该评论
  • 又学到了新知识!
显示更多评论

发表评论:

管理员

承接各种程序开发,外贸网站代运营,外贸网站建设等项目
  • 内容2460
  • 积分67666
  • 金币86666

Copyright © 2024 LS'Blog-保定PHP程序员老宋个人博客 Inc. 保留所有权利。 Powered by LS'blog 3.0.3

页面耗时0.0276秒, 内存占用1.94 MB, 访问数据库29次

冀ICP备19034377号