首頁 >後端開發 >php教程 >PHP函数array_merge,phparray_merge_PHP教程

PHP函数array_merge,phparray_merge_PHP教程

WBOY
WBOY原創
2016-07-13 10:20:10784瀏覽

PHP函数array_merge,phparray_merge

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

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

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

说明:

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

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

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

 

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

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

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

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

在php中array_merge是什

合并数组
1、如果这两个数组中有相同的字符串键名:
$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 )

说明,后者将替换前者。

2、如果这两个数组中有相同的数值键名:
$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不可以加非数组类型变量,有什好方法可以解决?除了很瘸的empty

可以使用自定义函数

function array_add($str1,$str2) {
if ( !is_array($str1) ) {
return;
}
if ( is_array($str2) ) {
$result = array_merge($str1,$str2);
} else {
$result = array_push($str1,$str2);
}
return $result;
}
 

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/869239.htmlTechArticlePHP函数array_merge,phparray_merge 今天因一个Bug重新审视了下array_merge()这个函数。 定义: array_merge 合并一个或多个数组 规范: array array_merge...
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn