📜  PHP | array_merge_recursive()函数

📅  最后修改于: 2022-05-13 01:56:55.788000             🧑  作者: Mango

PHP | array_merge_recursive()函数

array_merge_recursive()是PHP中的一个内置函数,用于递归地将两个或多个数组合并为一个数组。此函数用于将两个或多个数组的元素或值合并到一个数组中。合并以这样一种方式发生,即一个数组的值被附加到前一个数组的末尾。如果给定数组中有相同的键,则为该键分配一个值,该值具有一个由具有相同键的值组成的数组。

注意:该函数与 array_merge() 的不同之处在于,在多个具有相同键的数组的情况下,array_merge()函数从所有数组中获取最后一个数组值,但在array_merge_recursive()中,键被分配了一个数组,该数组由具有相同键的数组的所有值。

句法:

array_merge_recursive($array1, $array2, $array3...$arrayn)

参数:该函数可以将任意数量的数组作为参数,以逗号(,)分隔,我们需要合并。第一个参数$array1是必需的。

返回值:该函数返回一个合并的数组,其中所有数组都合并了。合并以这样一种方式发生,即一个数组的值被附加到前一个数组的末尾。如果给定数组中有相同的键,则为输出数组中的该键分配一个数组,该数组由具有相同键的值组成。

例子:

Input : $a1=array("a"=>"raj", "b"=>"striver");
        $a2=array("z"=>"geeks", "b"=>"articles");
Output : 
Array
(
    [a] => raj
    [b] => Array
        (
            [0] => striver
            [1] => articles
        )

    [z] => geeks
)
Explanation: "striver" and "articles" has the same 
key "b", so the key b is assigned to an array which has 
"striver" and "articles" as elements. 

Input :$a1=array("a"=>"raj", "b"=>"striver");
       $a2=array("z"=>"geeks", "d"=>"articles");
Output :
Array
(
    [a] => raj
    [b] => striver
    [z] => geeks
    [d] => articles
)

下面的程序说明了 array_merge_recursive()函数:

程序1:演示array_merge_recursive()的PHP程序
函数与所有不同的键。

"raj", "b"=>"striver");
$a2=array("z"=>"geeks", "d"=>"articles");
  
print_r(array_merge_recursive($a1, $a2));
?>

输出:

Array
(
    [a] => raj
    [b] => striver
    [z] => geeks
    [d] => articles
)

程序 2:用相同的键演示 array_merge_recursive()函数的PHP程序。

"raj", "b"=>"striver");
$a2=array("z"=>"geeks", "b"=>"articles");
  
//function call
print_r(array_merge_recursive($a1, $a2));
?>

输出:

Array
(
    [a] => raj
    [b] => Array
        (
            [0] => striver
            [1] => articles
        )

    [z] => geeks
)

参考
http:// PHP.net/manual/en/函数.array-merge-recursive。 PHP