美文网首页
php array merge函数

php array merge函数

作者: myloves008 | 来源:发表于2019-08-09 11:58 被阅读0次

HP中合并数组分成两种情况:1.如果这两个数组中有相同的字符串键名 2.如果这两个数组中有相同的数值键名

重新认识php array_merge函数

今天因一个Bug重新审视了下array_merge()这个函数。

定义:array_merge — 合并一个或多个数组

规范:array array_merge(array $array1 [, array $...])

说明:

1. 将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面。

2. 如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值。然而,如果数组包含数字键名,后面的值将不会覆盖原来的值,而是附加到后面。   

3. 如果只给了一个数组并且该数组是数字索引的,则键名会以连续方式重新索引。

这个函数在手册中有详尽示例,用途也很广且实用。

今天遇到的一个问题是手册中有警告的,只是此前没注意到,导致了一个致命的错误。如下:

PHP >= 5.0 版本,array_merge() 只接受array类型的参数。不过可以用强制转换来合并其它类型。

对于是foreach等代码产生的数组变量要注意了,要么初始化该变量为空数组,要么就在合并时做个强制转换。不然,会有大苦头吃。因此,保持一个初始化变量的习惯也是个好事。

PHP中合并数组分成两种情况

1、如果这两个数组中有相同的字符串键名:

<?php

$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

$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

$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函数

    HP中合并数组分成两种情况:1.如果这两个数组中有相同的字符串键名 2.如果这两个数组中有相同的数值键名 重新认识...

  • PHP array_merge() 函数

    定义和用法 array_merge() 函数把一个或多个数组合并为一个数组。 提示:您可以向函数输入一个或者多个数...

  • PHP参考手册

    PHP参考手册 PHP array() 函数 PHP array_change_key_case()函数 PHP ...

  • php数组合并,拆分,替换,组合

    php数组的操作(合并,拆分,删除,排序) 1. 合并数组 array_merge ( array $array1...

  • 11.12

    1.array_combine和array_merge和array+array的区别 2.php进行二维数组排序 ...

  • array_merge小坑,"+"运算符解决

    我们在php官网搜一下这个函数 array_merge() 举个例子把: 代码运行结果: 我们发现索引被重置了! ...

  • arrat_walk 做 循环处理 2018-05-22

    PHP array_walk() 函数 PHP Array 函数 实例 对数组中的每个元素应用用户自定义函数: f...

  • php array_merge、+、array_merge_r

    概念不赘述,先看代码 运行结果 概述一下,array_merge。数字键,两数组均保留并从0开始重新排列键值;字符...

  • PHP函数之array_multisort()

    PHP函数之array_multisort() array_multisort() 说明: array_multi...

  • array_merge 和+的区别

    php有2个函数常用语数组合并,他们是array_merge和+.本节来讲一下两者的区别. 索引数组 结论: ar...

网友评论

      本文标题:php array merge函数

      本文链接:https://www.haomeiwen.com/subject/itwcjctx.html