如何递归合并php多维数组

   2024-09-30 6590
核心提示:要递归地合并 PHP 多维数组,可以使用以下函数:function array_merge_recursive_ex(array $array1, array $array2): array {$me

要递归地合并 PHP 多维数组,可以使用以下函数:

function array_merge_recursive_ex(array $array1, array $array2): array {    $merged = $array1;    foreach ($array2 as $key => $value) {        if (is_array($value) && isset($merged[$key]) && is_array($merged[$key])) {            $merged[$key] = array_merge_recursive_ex($merged[$key], $value);        } else {            $merged[$key] = $value;        }    }    return $merged;}

这个函数接受两个数组作为参数,并返回一个新的数组。它会遍历第二个数组的每个元素,检查它们是否是数组。如果两个元素都是数组,则递归地调用 array_merge_recursive_ex 函数。否则,将第二个数组的值赋给合并后的数组。

以下是一个使用此函数的示例:

$array1 = [    'a' => 'value1',    'b' => [        'c' => 'value2',        'd' => [            'e' => 'value3',        ],    ],];$array2 = [    'f' => 'value4',    'b' => [        'g' => 'value5',        'd' => [            'h' => 'value6',        ],    ],];$mergedArray = array_merge_recursive_ex($array1, $array2);print_r($mergedArray);

输出结果:

Array(    [a] => value1    [b] => Array        (            [c] => value2            [d] => Array                (                    [e] => value3                    [h] => value6                )            [g] => value5        )    [f] => value4)

这个示例中,$array1$array2 的多维数组已经成功地合并。注意,当两个数组具有相同的键时,$array2 的值将覆盖 $array1 的值。

 
举报打赏
 
更多>同类物流大全
推荐图文
推荐物流大全
点击排行

网站首页  |  关于我们  |  联系方式网站留言    |  赣ICP备2021007278号