我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...

来聊一个比较简单的话题,php的数组合并问题。两个php数组如何合并到一起形成一个数组呢?本文使用array_merge()来实现两个数组的合并。通过几个小例子,可以对array_merge()函数加深一下理解。

苏南大叔:如何正确理解php数组合并函数 array_merge() ? - php-array-merge
如何正确理解php数组合并函数 array_merge() ?(图2-1)

苏南大叔的“程序如此灵动”博客,记录苏南大叔的编程故事。本文测试环境:win10nginx@1.15.11php@8.2.10-nts。本文的例子的正确理解,基于数组索引的不同处理方式。

array_merge()数组合并

可以合并两个数组,也可以合并多个数组。

$a = ["苏"];
$b = ["南"];
$c = ["大","叔"];
$x = array_merge($a,$b,$c);
print_r($x);
// Array ( [0] => 苏 [1] => 南 [2] => 大 [3] => 叔 )

数字索引,同索引不覆盖

大家都知道:php的数组如果没有指明索引的话,就是数字索引。:

$a = array(0 => "苏", 1 => "南");
$b = array(0 => "su");
$x = array_merge($a, $b);
print_r($x);

输出:

Array
(
    [0] => 苏
    [1] => 南
    [2] => su
)

非数字索引,同索引会覆盖

$a = array("a" => "苏", "b" => "南");
$b = array("a" => "su");
$x = array_merge($a, $b);
print_r($x);

输出:

Array
(
    [a] => su
    [b] => 南
)

既有数字又有非数字

$a = array("0" => "苏", "b" => "南");
$b = array("b" => "su", 0 => "nan", "0" => "大叔");
$x = array_merge($a, $b);
print_r($x);

这个例子里面,数字0和字符串0,都被识别为数字0索引。然后数字的索引不覆盖,重新排列,非数字的索引覆盖。输出是:

Array ( [0] => 苏 [b] => su [1] => 大叔 )

苏南大叔:如何正确理解php数组合并函数 array_merge() ? - 数组合并结果
如何正确理解php数组合并函数 array_merge() ?(图2-2)

相关文章

结语

php的一些函数,还是挺出人意料的。更多php文章,请参考:

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。

 【福利】 腾讯云最新爆款活动!1核2G云服务器首年50元!

 【源码】本文代码片段及相关软件,请点此获取更多信息

 【绝密】秘籍文章入口,仅传授于有缘之人   php