php 数组合并array_merge与array_merge_recursive详解

avatar
作者
猴君
阅读量:2

array_merge和array_merge_recursive是PHP中用于合并数组的两个函数。它们的区别在于当数组键名冲突时的处理方式。

  1. array_merge函数:
    • array_merge函数将一个或多个数组合并为一个数组。
    • 当有多个数组作为参数传入时,它会按顺序将数组合并,后面的数组的元素会追加到前面数组的末尾。
    • 如果数组的键名是数字,合并后的键名会重新索引。
    • 如果数组的键名是字符串,且有相同的键名,后面的键名会覆盖前面的键名。

示例:

$array1 = array("color" => "red", 2, 4); $array2 = array("a", "b", "color" => "green", "shape" => "circle"); $mergedArray = array_merge($array1, $array2); print_r($mergedArray); 

输出:

Array (     [color] => green     [0] => 2     [1] => 4     [2] => a     [3] => b     [shape] => circle ) 
  1. array_merge_recursive函数:
    • array_merge_recursive函数将一个或多个数组递归地合并为一个数组。
    • 当有多个数组作为参数传入时,它会按顺序将数组合并,后面的数组的元素会追加到前面数组的末尾。
    • 如果数组的键名是数字,合并后的键名会重新索引。
    • 如果数组的键名是字符串,且有相同的键名,合并后的值会以数组形式存储。

示例:

$array1 = array("color" => array("favorite" => "red"), 2, 4); $array2 = array("color" => array("favorite" => "green", "blue"), "a", "b"); $mergedArray = array_merge_recursive($array1, $array2); print_r($mergedArray); 

输出:

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

综上所述,array_merge和array_merge_recursive函数都可以用于合并数组,但在处理键名冲突时的方式不同。array_merge会覆盖前面的键名,而array_merge_recursive会将相同键名的值以数组形式存储。根据具体的需求选择适合的函数进行数组合并操作。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!