PHP array_merge功能的再认识

今天,在下array_merge函数()是重新审视一个bug。

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

规格:数组(数组array_merge array1 {,数组…})

解释uff1a

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

2。如果输入数组具有相同的字符串键,则值后面的键会覆盖前面的值。但是,如果数组中包含数字键,则后一个值将不会覆盖原始值,它将被附加到。

三.如果只对数组和数组是数字索引,则是连续重索引的关键。

该函数在手册中有详细的例子,应用广泛,实用。

今天遇到的问题之一是手册中有一个警告,但它以前没有被注意到,造成了致命的错误:

PHP(array_merge)> = 5版,只接受类型的数组参数。但是,它可以结合其他类型的强制。

我们应该注意到,通过foreach和其他代码生成的数组变量,要么初始化变量为空数组,或进行强制转换时合并。否则,会吃大苦。所以保持一个习惯,初始化变量的好东西。

PHP中数组的组合分为两种情况。



1,如果有两个数组相同的字符串键:




< PHP

1美元=阵列('linux= > 'linux服务器配置与管理,'php= > 'php程序设计);
$ 2 =阵列('linux= > 'server配置和管理,'jsp= > 'php);

结果=美元array_merge($ 1,2美元);
print_r($结果);
>



输出是:




(PHP服务器的配置和PHP程序设计的管理)





它表明,后者将取代前者。但如果array_merge_recursive()的使用,它可以被保留,成为一个如阵:






< PHP

1美元=阵列('linux= > 'linux服务器配置与管理,'php= > 'php程序设计);
$ 2 =阵列('linux= > 'server配置和管理,'jsp= > 'php);

结果=美元array_merge_recursive($ 1,2美元);
print_r($结果);
>



输出是:




数组({ = }数组({ 0 } > Linux服务器配置和管理服务器配置和管理{ 1 } = PHP = PHP PHP = PHP)程序设计)





2,如果数组中的两个数字键相同:




< PHP

1美元=阵列('linux服务器配置与管理,'php程序设计);
$ 2 =阵列('server配置和管理,'php);

结果=美元array_merge($ 1,2美元);
print_r($结果);
>



结果是:




数组({ 0 < = > Linux服务器配置和管理{ 1 } > PHP编程> { 2 }配置和管理服务器> { 3 } > PHP)





在这个时候,如果数组包含相同的数字键,以下将不包括前面,但后面关键才能增加,附在后面。你明白,^ _ ^