> 백엔드 개발 > PHP 튜토리얼 > PHP合并数组+与array_merge的区别_PHP教程

PHP合并数组+与array_merge的区别_PHP教程

WBOY
풀어 주다: 2016-07-13 10:31:21
원래의
954명이 탐색했습니다.

PHP中合并两个数组可以使用+或者array_merge,但这两个还是有区别的,清楚的了解这两中处理方法的区别对项目的快速开发来说还是非常有必要的。
 
主要区别是当两个或者多个数组中如果出现相同键名,需要注意以下两点:

首先需要说明一下php里面数组按键名大约可以分为字符串(关联数组)或者数字(数值数组),这里就不讨论多维数组了。
 
(1)键名为数字(数值数组)时,array_merge()不会覆盖掉原来的值,但+合并数组则会把最先出现的值作为最终结果返回,而把后面的数组拥有相同键名的那些值“抛弃”掉(不是覆盖)。
 
(2)键名为字符(关联数组)时,+仍然把最先出现的值作为最终结果返回,把后面的数组拥有相同键名的那些值“抛弃”掉,但array_merge()此时会覆盖掉前面相同键名的值。

下面通过几个具体的例子进行说明:

m:Array (
    [0] => a
    [1] => b
)
n:Array (
    [0] => c
    [1] => d
)
m+n 结果为 : Array (
    [0] => a
    [1] => b
)
array_merge(m,n)结果为 : Array (
    [0] => a
    [1] => b
    [2] => c
    [3] => d
)
m:Array (
    [1] => a
    [2] => b
)
n:Array (
    [2] => c
    [3] => d
)
m+n结果为 : Array (
    [1] => a
    [2] => b
    [3] => d
)
array_merge(m,n)结果为 : Array (
    [0] => a
    [1] => b
    [2] => c
    [3] => d
)
m:Array (
    [a] => a
    [b] => b
)
n:Array (
    [b] => c
    [d] => d
)
m+n结果为 : Array (
    [a] => a
    [b] => b
    [d] => d
)
array_merge(m,n)结果为 : Array (
    [a] => a
    [b] => c
    [d] => d
)

您可能感兴趣的文章

  • php在数组中查找某个值是否存在(in_array(),array_search(),array_key_exists())
  • PHP 生成连续的数字(字母)数组函数range()分析,PHP抽奖程序函数
  • php中在变量和函数前加static关键字之后的区别
  • PHP中跳出多重循环使用break,continue,goto,return,exit的用法和区别
  • php字符串替换函数str_replace速度比preg_replace快
  • php获取目录所有文件并将结果保存到数组的程序
  • 用PHP函数memory_get_usage获取当前PHP内存消耗量以实现程序的性能优化
  • 关于使用in_array() foreach array_search() 查找数组是否包含时的性能对比

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/764102.htmlTechArticlePHP中合并两个数组可以使用+或者array_merge,但这两个还是有区别的,清楚的了解这两中处理方法的区别对项目的快速开发来说还是非常有必...
관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿