加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

重新认识php array_merge函数

发布时间:2020-12-13 02:01:04 所属栏目:PHP教程 来源:网络整理
导读:《:重新认识php array_merge函数》要点: 本文介绍了:重新认识php array_merge函数,希望对您有用。如果有疑问,可以联系我们。 重新认识php array_merge函数 PHP编程 今天因一个Bug重新审视了下array_merge()这个函数. PHP编程 定义:array_merge ― 合并

《:重新认识php array_merge函数》要点:
本文介绍了:重新认识php array_merge函数,希望对您有用。如果有疑问,可以联系我们。

重新认识php array_merge函数PHP编程

今天因一个Bug重新审视了下array_merge()这个函数.PHP编程

定义:array_merge ― 合并一个或多个数组PHP编程

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

说明:PHP编程

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

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

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

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

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

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

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

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

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

<?php
 
 $book1 = array('linux'=>'linux服务器配置与管理','php'=>'PHP程序设计');
 $book2 = array('linux'=>'服务器配置与管理','jsp'=>'PHP'); 
 
 $result = array_merge($book1,$book2);
 print_r($result);
?>

输出为:
PHP编程

Array ( [linux] => 服务器配置与管理 [php] => PHP程序设计 [jsp] => PHP )

?
说明,后者将替换前者.但如果使用的是array_merge_recursive()则可保留,并作一个子数组存在.如:
?
PHP编程

<?php
 
 $book1 = array('linux'=>'linux服务器配置与管理','jsp'=>'PHP'); 
 
 $result = array_merge_recursive($book1,$book2);
 print_r($result);
?>

输出为:
PHP编程

Array ( [linux] => Array ( [0] => linux服务器配置与管理 [1] => 服务器配置与管理 ) [php] => PHP程序设计 [jsp] => PHP )

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

<?php
 
 $book1 = array('linux服务器配置与管理','PHP程序设计');
 $book2 = array('服务器配置与管理','PHP'); 
 
 $result = array_merge($book1,$book2);
 print_r($result);
?>

结果是:
PHP编程

Array ( [0] => linux服务器配置与管理 [1] => PHP程序设计 [2] => 服务器配置与管理 [3] => PHP )

?
这时,如果数组中包括相同的数字键名,则后面的不会覆盖前面的值,而是后面的键值按顺序依次增加,附在后边.明白了吗,^_^PHP编程

《:重新认识php array_merge函数》是否对您有启发,欢迎查看更多与《:重新认识php array_merge函数》相关教程,学精学透。编程之家 52php.cn为您提供精彩教程。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读