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

1:键名是string:

<?php
$arr1 = array('a'=>'PHP');
$arr2 = array('a'=>'JAVA');
print_r(array_merge($arr1,$arr2)); //Array ( [a] => JAVA )
print_r($arr1+$arr2); //Array ( [a] => PHP )
?>

结论:

1》:如果键名为字符,且键名相同,array_merge()后面数组元素值会覆盖前面数组元素值;数组相加会将最先出现的值作为结果。

2:如果键名是数字:

<?php
$arr1 = array("C","PHP");
$arr2 = array("JAVA","PHP");
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()不会进行覆盖;数组相加会将最先出现的值作为结果,后面键名相同的会被抛弃

3:如何最有效的获取字符键名相同值不同的两个数组值集合呢:

利用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
)

数组相加使用场景:(用于搜索的默认值和搜索值处理)

$_searchs = array(
    'stime'=>null,'etime'=>null,'name'=>null,'jsid_jsname'=>null,'dtime'=>'yesterday','ordername'=>'uv','ordertype'=>'desc'
);
if($_GET)
{
    $_searchs = $_GET+$_searchs;
}

分享五:php数组操作的更多相关文章

  1. php学习五:数组操作

    前言:由于之前接触过js,所以在学习php的时候,里面继承了js的许多方法,所以数组里面的许多操作和js很相似,但是却比js里面多的多,个人感觉php是集成数组方法最多的一个 ,今天学习的有二十余个, ...

  2. Javascript入门(五)数组操作、循环语句

    一.数组与数组操作 <script type="text/javascript"> //数组定义方式 var list1 = new Array(1,2,3); var ...

  3. 前端深入之js篇丨Array数组操作从入门到成神Up Up Up,持续更新中

    写在前面 随着前端深入的不断学习,发现数组这个数据结构在前端中有着相当大的存在感,由于我初学前端的时候并没有系统性的学习数组,所以我将通过这篇文章同你一起学习数组,希望我们能一起进步,学会熟练操作数组 ...

  4. JavaScript中数组操作常用方法

    JavaScript中数组操作常用方法 1.检测数组 1)检测对象是否为数组,使用instanceof 操作符 if(value instanceof Array) { //对数组执行某些操作 } 2 ...

  5. PHP数组操作大全

    <?php /** * File: phpstudy : array_test.php * Created by PhpStorm. * User: IhMfLy Pheonix@jtv-070 ...

  6. Java基础知识二次学习--第五章 数组

    第五章 数组 时间:2017年4月26日15:11:30~2017年4月26日15:15:54 章节:05章_01节  视频长度:09:30 内容:一维数组的内存分析 心得: Java中数组是引用类型 ...

  7. Swift入门(五)——数组(Array)

    集合 集合的定义 Swift中提供了两种数据结构用于存放数据的集合,各自是数组(Array)和字典(Dictionary). 他们的主要差别在于数组中的元素由下标确定.而字典中的数据的值由数据的键(K ...

  8. 每周分享五个 PyCharm 使用技巧(二)

    这是 「PyCharm 技巧分享」系列的第二篇分享.由于上一篇文章得到了大家的一些赞同,所以今天又来给大家推荐一些我平时自己有用的小技巧,大家择需所取即可. 先声明下,并不保证对所有的人都是有帮助的, ...

  9. 每周分享五个 PyCharm 使用技巧(一)

    PyCharm 是大多数 Python 开发者的首选 IDE,每天我们都在上面敲着熟悉的代码,写出一个又一个奇妙的功能. 一个每天都在使用的工具,如果能掌握一些高效的使用技巧,肯定会给我们的开发效率带 ...

  10. numpy 多维数组及数组操作

    NumPy是Python语言的一个扩充程序库.支持高级大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库.Numpy内部解除了Python的PIL(全局解释器锁),运算效率极好,是大量机 ...

随机推荐

  1. 如何判断CapsLock键是否按下

        SHORT cap_state = ::GetKeyState(VK_CAPITAL);     char str[10];     sprintf(str, "%d", ...

  2. 自己的一个js库

    https://github.com/sqqihao/nono_framework.git 持续更新,慢慢写着,这样才能成长

  3. php之快速入门学习-5(常量)

    PHP 5 常量 常量值被定义后,在脚本的其他任何地方都不能被改变. PHP 常量 常量是一个简单值的标识符.该值在脚本中不能改变. 一个常量由英文字母.下划线.和数字组成,但数字不能作为首字母出现. ...

  4. 动态SQL(学习笔记)

    动态SQL EXECUTE IMMEDIATE 动态SQL字符串 [BUCK COLLECT] INTO 自定义的变量,,|记录类型 USING [IN |OUT|IN OUT]绑定的参数] [RET ...

  5. js replace 如何替换字符串中的最后一个匹配项

    1.正则表达时,贪婪模式,.*会一直匹配到最后一个 // 验证 let str = "123[空]345[空]789[空]0"; let res = str.replace(/(. ...

  6. spring-tool-suite(STS) 创建 spring boot项目

    1.创建一个Spring Starter Project工程(new --> Spring Starter Project) 2.选择自己需要的依赖,因为想要通过REST方式来验证是否成功创建, ...

  7. Eclipse 中选中一个单词 ,其他相同的单词颜色就会变化

    "Window"-"preferences"-"Java"-"Editor"-"Mark Occurrence ...

  8. 创建简单的Telnet实例

    step1.先加入库SuperSocket.Common.dll, SuperSocket.SocketBase.dll, SuperSocket.SocketEngine.dll,log4net.d ...

  9. 关联更新SQL语句

    update F_A_Info  set level=b.level from  F_A_Info a,F_A_Info_QUAN b where a.id=b.id

  10. HDUOJ Children’s Queue

    Children’s Queue Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...