在PHP数组合并出过几次问题都没记住,写下来加强一点记忆

PHP数组在合并时,使用 array_merge 与 + 的差异:

1、array_merge(array $array1 [, array $... ])

a、如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值。

b、如果数组包含数字键名,后面的值将不会覆盖原来的值,而是附加到后面。

c、如果输入只有一个数组并且该数组是数字索引的,则键名会以连续方式重新索引。

2、$array1 + $array2

a、两个数组中有的相同的键名,则只用左边数组中的,右边的被忽略。

这两种合并的效果类似如下(不过还是看看源码的靠谱):

 $array1 = array("name" => "wing", "good", 322222=>2, 4);
$array2 = array("a", "b", "color" => "green", "hello" => "word", 3=>4); // array1 + array2
function addArray($arr1 = array(), $arr2 = array()) {
if(!empty($arr2)) {
foreach($arr2 as $key=>$value) {
if(!isset($arr1[$key])) {
$arr1[$key] = $value;
}
}
}
return $arr1;
} // array_merge
function arrayMerge($arr1 = array(), $arr2 = array()) {
$result = array();
foreach(array($arr1, $arr2) as $arr) {
if(!empty($arr)) {
foreach($arr as $key=>$value) {
if(!is_numeric($key)) {
$result[$key] = $value;
} else {
$result[] = $value;
}
}
}
}
return $result;
}

PHP数组合并 array_merge 与 + 的差异的更多相关文章

  1. PHP 数组相加 和 数组合并array_merge

    $arr1 = array("a"=>"PHP","b"=>"java","python" ...

  2. php中的常用数组函数(七) 数组合并 array_merge()和array_merge_recursive()

    $arr1 = array(1, 2, 3, 4, 'color'=>'red'); $arr2 = array('a', 'b', 'c', 'color'=>'blue'); prin ...

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

    PHP中两个数组合并可以使用+或者array_merge,但之间还是有区别的,而且这些区别如果了解不清楚项目中会要命的! 主要区别是两个或者多个数组中如果出现相同键名,键名分为字符串或者数字,需要注意 ...

  4. php数组合并方法array_merge + 排序array_multisort方法 array_unique数组去重 array_values数组索引值重新从0开始递增

    $dingdan = array_merge($jie_dingdan,$user_dingdan);//数组合并方法 $orderFile = array(); foreach($dingdan a ...

  5. PHP数组合并的常见问题

    一维数组的合并 <?php $arr1=array("a","b","c"); $arr2=array("c",& ...

  6. php二位数组合并

    转自:http://www.cnblogs.com/losesea/archive/2013/06/14/3134900.html 题目:有以下2个二维数组 1$a=Array(0 => Arr ...

  7. PHP中数组合并的两种方法及区别介绍

    PHP数组合并两种方法及区别 如果是关联数组,如下: 复制代码代码如下: $a = array( 'where' => 'uid=1', 'order' => 'uid', ); $b = ...

  8. php 操作数组 (合并,拆分,追加,查找,删除等)

    1. 合并数组 array_merge()函数将数组合并到一起,返回一个联合的数组.所得到的数组以第一个输入数组参数开始,按后面数组参数出现的顺序依次迫加.其形式为: array array_merg ...

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

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

随机推荐

  1. Windows Azure初体验

    目前在IT界,云这个概念的第一意思不再是词典里的解释了.不过它们还是有相同点的——也许确实会酝酿出一块大蛋糕,可也是飘在天上,众神分食之,与我等P民无关.所谓云,不过是网络时代发展到一定阶段的必然产物 ...

  2. 基于 EntityFramework 的数据库主从读写分离

    现在刚开始来研究EntityFramwork,起初是在vs2012中通过工具来创建EF ,但是对我这种不熟悉菜鸟来说 有很多业务用EF做出来还是有点难度的,今天来手动搭建一个EF框架,大神勿喷

  3. EBS中启用OAF页面个性化三个配置

    启用OAF页面个性化三个配置(Profiles) FND:诊断英文为FND: Diagnostics,用于设置是否显示“关于此页” 个性化自助定义英文为Personalize Self-Service ...

  4. linux 下 TeXmacs 作 Mathematica 10 的前端

    TeXmacs可以作很多种数学软件的前端,比如maxima,octave,R等.甚至还可以作mathematica的前端.TeXmacs的mathematica 插件比较老,默认条件下无法运行math ...

  5. 控制input框不能更改里面的内容

    <input type="text" disabled="true"/> 这个是给input设置一个属性.控制它可以不能改变里面的内容.已经试过了! ...

  6. PV IP UV的概念介绍

    IP(独立IP):指独立IP数,不同的IP地址的计算机访问网站的总次数,这个是网站流量分析的一个重要指标.00:00-24:00内相同的IP地址只被计算一次 假如说:赶集网的日独立IP300W,则至少 ...

  7. UIViewController中addChildViewController的作用

    当在一个ViewController中添加一个子ViewController时,UI部分可以直接通过addSubView的方法添加,例如: 在一个ViewControllerA中添加ViewContr ...

  8. Node.js 中MongoDB的基本接口操作

    Node.js 中MongoDB的基本接口操作 连接数据库 安装mongodb模块 导入mongodb模块 调用connect方法 文档的增删改查操作 插入文档 方法: db.collection(& ...

  9. Python 多线程 Condition 的使用

    Condition Condition(条件变量)通常与一个锁关联.需要在多个Contidion中共享一个锁时,可以传递一个Lock/RLock实例给构造方法,否则它将自己生成一个RLock实例. 可 ...

  10. c#自制视屏监控

    项目需要开发一个监控程序,主要是监控其它电脑的操作情况. 先说下原理吧,首先我们列出做远程监控的基本步骤,远端电脑的ip,捕捉屏幕的方法,传输,接收并显示. 突然不知道怎么写下去了....... 程序 ...