ZetCode

PHP array_replace 函数

最后修改于 2025 年 3 月 13 日

PHP array_replace 函数将传入的数组的元素替换到第一个数组中。它同时支持数字键和字符串键。

基本定义

array_replace 函数用后续数组中的值替换第一个数组中的值。如果一个键存在于多个数组中,则使用最后一个数组的值。

语法: array_replace(array $array, array ...$replacements): array。该函数返回修改后的数组。原始数组不会被改变。

基本的 array_replace 示例

这展示了对关联数组的值进行简单替换。

basic_array_replace.php
<?php

$base = ["a" => 1, "b" => 2, "c" => 3];
$replace = ["b" => 20, "d" => 40];

$result = array_replace($base, $replace);

print_r($result);

键 "b" 的值被替换为 20,并且添加了一个新键 "d"。原始键 "a" 和 "c" 在结果数组中保持不变。

多个数组替换

演示了提供多个数组时值的替换方式。

multiple_replace.php
<?php

$base = ["apple" => "red", "banana" => "yellow"];
$replace1 = ["apple" => "green", "orange" => "orange"];
$replace2 = ["banana" => "brown"];

$result = array_replace($base, $replace1, $replace2);

print_r($result);

"apple" 的值来自 $replace1,"banana" 来自 $replace2,并且添加了 "orange"。后面的数组优先于前面的数组。

数字键替换

展示了 array_replace 函数如何处理数字键。

numeric_keys.php
<?php

$base = [10 => "ten", 20 => "twenty"];
$replace = [10 => "TEN", 30 => "THIRTY"];

$result = array_replace($base, $replace);

print_r($result);

数字键 10 被替换,键 20 保持不变,并且添加了键 30。该函数对数字键和字符串键的处理方式相同。

空数组的行为

演示了将空数组传递给 array_replace 时会发生什么。

empty_arrays.php
<?php

$base = ["a" => 1, "b" => 2];
$empty1 = [];
$empty2 = [];

$result = array_replace($base, $empty1, $empty2);

print_r($result);

空数组不会影响结果。输出与基本数组相同,因为在空数组中没有指定任何替换。

合并数字键和关联键

展示了 array_replace 如何处理混合数字键和关联键的数组。

mixed_arrays.php
<?php

$base = [0 => "zero", "color" => "red"];
$replace = [0 => "ZERO", 1 => "one", "color" => "blue"];

$result = array_replace($base, $replace);

print_r($result);

数字键 0 被替换,字符串键 "color" 被更新,并且添加了新键 1。该函数无缝处理混合键类型。

最佳实践

来源

PHP array_replace 文档

本教程介绍了 PHP array_replace 函数,并通过实际示例展示了其在数组操作场景中的用法。

作者

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

列出 所有 PHP 数组函数