php数组合并函数

php数组合并函数

在PHP中,合并数组是一项常见的任务。PHP提供了多种函数来合并数组,每个函数都有其特定的用途和行为。以下是几种常用的数组合并函数及其用法:

1. array_merge()

array_merge() 函数用于合并一个或多个数组。如果数组具有相同的字符串键名,则后面的值将覆盖前面的值;如果数组具有相同的数字键名,则后面的值不会覆盖前面的值,而是重新索引。

示例代码

$array1 = ["color" => "red", 2, 4]; $array2 = ["a" => "green", "b" => "brown", 2 => "blue", "0" => "yellow"]; $result = array_merge($array1, $array2); print_r($result);

输出结果

Array ( [color] => red [0] => 2 [1] => 4 [a] => green [b] => brown [2] => blue [3] => yellow )

2. array_merge_recursive()

array_merge_recursive() 函数递归地合并一个或多个数组。如果数组有相同的字符串键名,则值会被合并成一个数组,而不是被替换。对于数字键名,行为类似于 array_merge()。

示例代码

$array1 = ["color" => "red", 2, 4]; $array2 = ["color" => "green", "shape" => "trapezoid", 4 => "black"]; $result = array_merge_recursive($array1, $array2); print_r($result);

输出结果

Array ( [color] => Array ( [0] => red [1] => green ) [0] => 2 [1] => 4 [shape] => trapezoid [2] => black )

3. + 操作符(数组联合)

使用 + 操作符可以合并两个数组。如果数组有相同的字符串键名,则保留第一个数组中的值,忽略第二个数组中的值。对于数字键名,行为类似于 array_merge()。

示例代码

$array1 = ["color" => "red", 2, 4]; $array2 = ["color" => "green", "shape" => "trapezoid", 2 => "blue"]; $result = $array1 + $array2; print_r($result);

输出结果

Array ( [color] => red [0] => 2 [1] => 4 [shape] => trapezoid [2] => blue )

4. array_replace() 和 array_replace_recursive()

array_replace() 函数用后面数组的值替换前面数组的对应值。如果键不存在于前一个数组中,则将其添加到结果数组的末尾。

array_replace_recursive() 函数递归地进行替换操作。如果数组有相同的字符串键名且对应的值是数组,那么这些值将被递归地合并。

示例代码(array_replace)

$array1 = ["color" => "red", 2, 4]; $array2 = ["color" => "green", "shape" => "trapezoid", 2 => "blue"]; $result = array_replace($array1, $array2); print_r($result);

输出结果

Array ( [color] => green [0] => 2 [1] => 4 [shape] => trapezoid [2] => blue )

示例代码(array_replace_recursive)

$array1 = ["color" => ["favorite" => "red"], 2, 4]; $array2 = ["color" => ["favorite" => "green", "blue"], "shape" => "trapezoid"]; $result = array_replace_recursive($array1, $array2); print_r($result);

输出结果

Array ( [color] => Array ( [favorite] => green [0] => blue ) [0] => 2 [1] => 4 [shape] => trapezoid )

选择哪种数组合并函数取决于你的具体需求,例如是否需要递归合并、是否希望覆盖重复键等。