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

在上一篇的php的数组合并的文章里面,可以看到array_merge()对于不同类型的键值,有着不同的对待标准。数字类型的不覆盖,顺序重排。字母类型的直接覆盖。而本文中,array_replace()则没有上述规则,只要是重复的键,就覆盖。

苏南大叔:如何理解php的array_replace()函数?replace和merge的区别 - php-array-replace
如何理解php的array_replace()函数?replace和merge的区别(图2-1)

苏南大叔的“程序如此灵动”博客,记录苏南大叔的程序经验文章。测试环境:win10nginx@1.15.11php@8.2.10-nts

前文回顾

主要回顾phparray_merge()的使用方法:

array_merge()的同名键合并的时候,会根据键是数字还是字符串,做出不同的处理,或覆盖或追加。而本文中的的例子,也比较好理解。array_replace()的同键值处理,都是覆盖!没有例外。

可以处理多个数组

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

苏南大叔:如何理解php的array_replace()函数?replace和merge的区别 - array-replace代码
如何理解php的array_replace()函数?replace和merge的区别(图2-2)

数字索引覆盖

$a = array(0 => "苏", 1 => "南");
$b = array(0 => "su");
print_r(array_merge($a,$b));            // Array ( [0] => 苏 [1] => 南 [2] => su )
print_r(array_replace($a,$b));          // Array ( [0] => su [1] => 南 )

非数字索引覆盖

$a = array("a" => "苏", "b" => "南");     
$b = array("a" => "su");
print_r(array_merge($a,$b));            // Array ( [a] => su [b] => 南 )
print_r(array_replace($a,$b));          // Array ( [a] => su [b] => 南 )

混合索引覆盖

$a = array("0" => "苏", "b" => "南");
$b = array("b" => "su", 0 => "nan", "0" => "大叔");
print_r(array_merge($a,$b));             // Array ( [0] => 苏 [b] => su [1] => 大叔 ) 
print_r(array_replace($a,$b));           // Array ( [0] => 大叔 [b] => su )

结语

苏南大叔的php经验文章链接:

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

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

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

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