PHP数组合并时,如何实现不同数据类型之间的合并?

2024年 4月 28日 36.2k 0

对于 php 中不同数据类型数组的合并,有三种常用方法:1)array_merge_recursive,递归合并,保留子数组;2)php 7.4+ 的 spread operator,展开数组;3)自定义合并函数,提供精细控制。

PHP数组合并时,如何实现不同数据类型之间的合并?

不同数据类型间的 PHP 数组合并

在 PHP 中,合并数组时经常会遇到不同数据类型的数据,为了实现这些数据类型的完美合并,这里介绍三种常见的方法,并提供实战案例进行演示。

1. array_merge_recursive

此函数可递归合并数组,将子数组以数组的形式合并,而不会丢失子数组的数据。

 1, 'b' => [3, 4], 'c' => ['d' => 6]];
$array2 = ['b' => [1, 2], 'e' => 5];

$mergedArray = array_merge_recursive($array1, $array2);

print_r($mergedArray); // 输出:
// Array
// (
//     [a] => 1
//     [b] => Array
//         (
//             [0] => 3
//             [1] => 4
//             [2] => 1
//             [3] => 2
//         )
//     [c] => Array
//         (
//             [d] => 6
//         )
//     [e] => 5
// )
?>

2. spread operator(PHP 7.4+)

PHP 7.4 引入了 spread operator,它允许在数组中展开另一个数组。

 1, 'b' => [3, 4]];
$array2 = ['b' => [1, 2], 'e' => 5];

$mergedArray = [...$array1, ...$array2];

print_r($mergedArray); // 输出:
// Array
// (
//     [0] => 1
//     [1] => 3
//     [2] => 4
//     [3] => 1
//     [4] => 2
//     [5] => 5
// )
?>

3. 自定义合并函数

如果你需要对合并过程进行更精细的控制,可以编写一个自定义的合并函数。

 $value) {
        if (isset($array1[$key]) && is_array($array1[$key]) && is_array($value)) {
            $array1[$key] = custom_array_merge($array1[$key], $value);
        } else {
            $array1[$key] = $value;
        }
    }

    return $array1;
}

$array1 = ['a' => 1, 'b' => [3, 4], 'c' => ['d' => 6]];
$array2 = ['b' => [1, 2], 'e' => 5];

$mergedArray = custom_array_merge($array1, $array2);

print_r($mergedArray); // 输出:
// Array
// (
//     [a] => 1
//     [b] => Array
//         (
//             [0] => 3
//             [1] => 4
//             [2] => 1
//             [3] => 2
//         )
//     [c] => Array
//         (
//             [d] => 6
//         )
//     [e] => 5
// )
?>

以上就是PHP数组合并时,如何实现不同数据类型之间的合并?的详细内容,更多请关注每日运维网(www.mryunwei.com)其它相关文章!

相关文章

JavaScript2024新功能:Object.groupBy、正则表达式v标志
PHP trim 函数对多字节字符的使用和限制
新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
为React 19做准备:WordPress 6.6用户指南
如何删除WordPress中的所有评论

发布评论