美文网首页PHP程序员
PHP array_merge()与array_merge_re

PHP array_merge()与array_merge_re

作者: php转go | 来源:发表于2020-09-27 14:52 被阅读0次

array_merge()与array_merge_recursive()都是把两个或者多个数组合并成一个数组

  1. 当合并的数组是索引时,直接合并成新的索引数组,这时array_merge()与array_merge_recursive()得到的结果是一致的
        $a1=array("1","2");
        $a2=array("3","4");
        $a3=array("5","6");
        print_r(array_merge($a1,$a2,$a3));
        print_r(array_merge_recursive($a1,$a2,$a3));
#结果
Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
    [5] => 6
)

  1. 当合并的数组不存在键相同时,所有数组的键值对都是合成的新数组的键值对,这时array_merge()与array_merge_recursive()得到的结果是一致的
$a1=array('a'=>"1",'b'=>"2");
        $a2=array('c'=>"3",'d'=>"4");
        $a3=array('e'=>"5",'f'=>"6");
        print_r(array_merge($a1,$a2,$a3));
        print_r(array_merge_recursive($a1,$a2,$a3));
#结果一致
Array
(
    [a] => 1
    [b] => 2
    [c] => 3
    [d] => 4
    [e] => 5
    [f] => 6
)
  1. 当合并的数组存在键相同时,array_merge()会把最后的元素会覆盖其他元素,array_merge_recursive() 不会进行键名覆盖,而是将多个相同键名的值递归组成一个数组。
 $a1=array('a'=>"1",'b'=>"2");
        $a2=array('a'=>"3",'d'=>"4");
        $a3=array('a'=>"5",'f'=>"6");
        print_r(array_merge($a1,$a2,$a3));
        print_r(array_merge_recursive($a1,$a2,$a3));
#结果
Array
(
    [a] => 5 #键相同,最后一个数组的值覆盖钱的
    [b] => 2
    [d] => 4
    [f] => 6
)

Array
(
    [a] => Array #相同键的合并成一个数组
        (
            [0] => 1
            [1] => 3
            [2] => 5
        )

    [b] => 2
    [d] => 4
    [f] => 6
)
  1. 向 array_merge()或者array_merge_recursive() 函数输入一个数组,且键名是整数,则该函数将返回带有整数键名的新数组,其键名以 0 开始进行重新索引
$a1=array(1=>"1",3=>"2"); 
        print_r(array_merge($a1));
        print_r(array_merge_recursive($a1));
#结果
Array
(
    [0] => 1 以0开始的索引数组
    [1] => 2
)

相关文章

网友评论

    本文标题:PHP array_merge()与array_merge_re

    本文链接:https://www.haomeiwen.com/subject/ojfluktx.html