ZetCode

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 的 array_merge 函数,并通过实际示例展示了各种合并场景和行为。

作者

我的名字是 Jan Bodnar,我是一名充满热情的程序员,拥有丰富的编程经验。自 2007 年以来,我一直在撰写编程文章。迄今为止,我已撰写了 1400 多篇文章和 8 本电子书。我在教授编程方面拥有超过十年的经验。

列出 所有 PHP 数组函数