PHP array_merge 函数
最后修改于 2025 年 3 月 13 日
PHP 的 array_merge 函数将两个或多个数组合并成一个单一的数组。它在 PHP 应用程序的数组操作中至关重要。
基本定义
array_merge 函数将多个数组的元素合并到一个数组中。对于相同的键,后一个数组的值会覆盖前一个数组的值。
语法:array_merge(array ...$arrays): array。它接受一个或多个数组作为参数。字符串键会被覆盖,数字键会被重新索引。
基本的 array_merge 示例
这演示了合并两个具有字符串键的简单数组。
basic_array_merge.php
<?php $array1 = ["color" => "red", 2, 4]; $array2 = ["a", "b", "color" => "green", "shape" => "circle", 4]; $result = array_merge($array1, $array2); print_r($result);
这合并了具有字符串和数字键的两个数组。“color”的值从 $array2 覆盖 $array1 的值。数字键会被重新索引。
合并数字键
合并具有数字键的数组时,值会被追加,键会被重新编号。
numeric_keys.php
<?php $numbers1 = [10, 20, 30]; $numbers2 = [40, 50, 60]; $merged = array_merge($numbers1, $numbers2); print_r($merged);
输出显示所有元素已合并,并带有新的数字索引(0-5)。与字符串键不同,数字键不会导致覆盖,而是会被重新索引。
合并多个数组
array_merge 可以在一次调用中合并两个以上的数组。
multiple_arrays.php
<?php $user = ["name" => "John"]; $profile = ["age" => 30, "city" => "New York"]; $preferences = ["theme" => "dark", "notifications" => true]; $account = array_merge($user, $profile, $preferences); print_r($account);
这会将三个关联数组合并成一个。所有字符串键都保持不同,因此在此示例中没有值被覆盖。
合并具有重复字符串键的数组
当字符串键发生冲突时,后一个数组的值会覆盖前一个数组的值。
duplicate_keys.php
<?php $config1 = ["debug" => false, "log_level" => "warning"]; $config2 = ["debug" => true, "timeout" => 30]; $finalConfig = array_merge($config1, $config2); print_r($finalConfig);
来自 $config2 的“debug”值覆盖了 $config1 的值。其他键正常合并。此行为对于配置覆盖非常有用。
合并索引数组和关联数组
array_merge 可以适当地处理混合键类型。
mixed_arrays.php
<?php $indexed = ["apple", "banana"]; $associative = ["fruit" => "orange", "vegetable" => "carrot"]; $combined = array_merge($indexed, $associative); print_r($combined);
数字键被重新索引(0,1),而字符串键保持不变。结果包含两个数组中的所有元素,按顺序排列。
最佳实践
- 键冲突:请注意字符串键的覆盖行为。
- 性能:对于大型数组,请考虑内存影响。
- 类型安全:确保合并的数组具有兼容的值类型。
- 替代方案:使用 + 运算符以实现不同的合并行为。
来源
本教程介绍了 PHP 的 array_merge 函数,并通过实际示例展示了各种合并场景和行为。
作者
列出 所有 PHP 数组函数。