如果明白数组其实就是map的话,我想你就会明白array_merge为什么要这么实现了

PHP中合并数组分成两种情况
1、如果这两个数组中有相同的字符串键名:
<?php
header('Content-type: text/html; charset=utf8');
$book1 = array('linux'=>'linux服务器配置与管理','php'=>'PHP程序设计');
$book2 = array('linux'=>'服务器配置与管理','jsp'=>'PHP'); $result = array_merge($book1,$book2);
print_r($result);
//Array ( [linux] => 服务器配置与管理 [php] => PHP程序设计 [jsp] => PHP )
?>

说明:后者将替换前者,很正常,健值只能有一个。但如果使用的是array_merge_recursive()则可保留,并作一个子数组存在。如:

<?php
header('Content-type: text/html; charset=utf8');
$book1 = array('linux'=>'linux服务器配置与管理','php'=>'PHP程序设计');
$book2 = array('linux'=>'服务器配置与管理','jsp'=>'PHP'); $result = array_merge_recursive($book1,$book2); print_r($result);
//Array ( [linux] => Array ( [0] => linux服务器配置与管理 [1] => 服务器配置与管理 ) [php] => PHP程序设计 [jsp] => PHP )
?>

2、如果这两个数组中有相同的数值键名:

<?php
header('Content-type: text/html; charset=utf8'); $book1 = array('linux服务器配置与管理','PHP程序设计');
$book2 = array('服务器配置与管理','PHP'); $result = array_merge($book1,$book2);
print_r($result);
//Array ( [0] => linux服务器配置与管理 [1] => PHP程序设计 [2] => 服务器配置与管理 [3] => PHP )
?>

这时,如果数组中包含相同的数字键名,则后面的不会覆盖前面的值,而是后面的键值按顺序依次增加,附在后边。

PHP中使用函数array_merge()合并数组的更多相关文章

  1. PHP——巧用PHP函数array_merge()合并数组

    前言 返回联系人列表,包含所有的字母,之前返回的是存在这个联系人才会返回对应的大写字母,后面更改了要求要返回所有的字母从A-Z.PHP内置的一些函数活用起来,真的很省劲! 步骤 一般这时候大家可能直接 ...

  2. php中foreach()函数与Array数组经典案例讲解

    //php中foreach()函数与Array数组经典案例讲解 function getVal($v) { return $v; //可以加任意检查代码,列入要求$v必须是数字,或过滤非法字符串等.} ...

  3. php中array_merge合并数组详解

    如果键名有重复,该键的键值为最后一个键名对应的值(后面的覆盖前面的).如果数组是数字索引的,则键名会以连续方式重新索引. 注释:如果仅仅向 array_merge() 函数输入了一个数组,且键名是整数 ...

  4. PHP的array_merge()合并数组

    ,4];print_r(array_merge($arr1,$arr2));返回结果:Array(    [a] => 3    [b] => 2    [0] => 4)1注释:当 ...

  5. js根据数组对象中某个元素合并数组

    一个数组,根据数组中某个元素,合并数组 // 需要被合并的数组,把Index相同的数组合并 const arr = [{id:0,name:'张三'}, {id:0,name:'李四'}, {id:1 ...

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

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

  7. PHP中通过加号合并数组

    通常,我们合并多个数组用的是array_merge()函数,其实,PHP手册中关于数组操作符的介绍给了我们更简单的方法,那就是"+"号,看看下面的例子就明白了(详细了解) 代码: ...

  8. PHP array_count_values() 函数用于统计数组中所有值出现的次数。

    定义和用法 array_count_values() 函数用于统计数组中所有值出现的次数. 本函数返回一个数组,其元素的键名是原数组的值,键值是该值在原数组中出现的次数. 语法 array_count ...

  9. 深度解析PHP数组函数array_merge

    很久之前就用到过这个函数,只不不过是简单的用用而已并没有做太深入的研究 今天在翻阅别人博客时看到了对array_merge的一些使用心得,故此自己来进行一次总结. array_merge是将一个或者多 ...

随机推荐

  1. JS 页面加载触发事件 document.ready和onload的区别(转)

    原博地址:http://blog.163.com/zhaoyanping_1125/blog/static/20132915320111129113723710/ * document.ready和o ...

  2. python实现模拟登录【转】

    原文网址:http://www.blogjava.net/hongqiang/archive/2012/08/01/384552.html 本文主要用python实现了对网站的模拟登录.通过自己构造p ...

  3. gcc向待编译源文件传入参数的方法

    gcc有两种方法向待编译源文件传入参数 第一种 利用–Dmacro=name 编译选项,详见gcc -D选项 第二种 利用链接脚本(*.lds)传入参数,类似于ADS的编译器参数可以被待编译源文件调用 ...

  4. C# 中经常用到的HTTP请求类,已封装get,post,delete,put

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.N ...

  5. cocos2dx 3.3创建新项目 和 VS2012解决方案加载失败问题

     首先创建新项目,步骤如下: 1.进入cocos2d-x-3.3\tools\cocos2d-console\bin目录,按住shift+鼠标右键 2.输入 cocos new 项目名 –p 包名 – ...

  6. ubuntu13.10 登陆后黑屏,没有菜单栏,可以启动termina,怎么解决?

    最近在学习openGL,自己的电脑是intel集显加nvidia GT630M,本来想应该可以支持到opengl4以上的,可是发现nvidia的显卡由于驱动问题,好像一直没有用到,所以只支持了open ...

  7. ipad在非viewport 1:1下缩放问题

    1.最小会有980宽度,小于980应设置viewport 2.fix元素使用100%指定宽度时,默认会以min-width或980作为尺寸,可以选择给定与页面缩放时触发定宽来设置宽度,或设置设置bod ...

  8. 使用Runnable接口创建线程-3

    实现Runnable接口的类必须使用Thread类的实例才能创建线程.通过Runnable接口创建线程分为两步: 1. 将实现Runnable接口的类实例化. 2. 建立一个Thread对象,并将第一 ...

  9. 李洪强漫谈iOS开发[C语言-032]-三目运算符

  10. [wikioi]数的划分

    http://wikioi.com/problem/1039/ 划分型DP.最终的思路是,F[i][j]表示i分成j份,如果分出来的有1,那么去掉1,就是F[i-1][j-1]:如果没有1,那就都减1 ...