如何在PHP中替换数组值

400 阅读2分钟

如果数组1的键存在于数组2中,那么数组1的值将被数组2的值所取代。另一方面,如果一个键只存在于array1中,它将被保持原样。

PHP array_replace

PHP array_replace()是一个内置函数,用第二个数组的值替换第一个数组的值。array_replace()函数将第一个数组的值替换成第二个数组或以下数组的值。

你可以为该函数指定一个数组,也可以指定任意多的数组,这取决于你的要求。

语法

array_replace(array1,array2,array3...)

参数

array1 参数是必须的。

array2 参数是可选的,它指定了一个将替换array1的值的数组。

array3 参数是可选的,它指定了更多的数组来替换array1array2的值,等等。

例子

请看下面的代码例子:

<?php

// app.php

$brandsA = [
  'a' => 'Louis Vuitton',
  'b' => 'Hermès',
  'c' => 'Gucci',
  'd' => 'Prada',
  'e' => 'Chanel',
  'f' => 'Cartier'
];
$brandsB = [
  'b' => 'Tesla',
  'd' => 'Coca-cola',
  'e' => 'Google',
  'f' => 'Facebook'
];
$replaced = array_replace($brandsA, $brandsB);
print_r($replaced);

在代码中,我们已经定义了两个数组。现在,我们要用brandsB 替换brandsA中的一些项目。 如果品牌A的键与品牌B相匹配,它将用品牌B替换品牌A的值。请看下面的输出:

PHP Array Replace Example

如果键存在于数组2中而不在数组1中

让我们看看键存在于array1而不在array2中的情况,并使用array_replace()函数,请看代码:

<?php

// app.php

$brandsA = [
  'a' => 'Louis Vuitton',
  'b' => 'Hermès',
  'c' => 'Gucci',
  'd' => 'Prada',
  'e' => 'Chanel',
  'f' => 'Cartier'
];
$brandsB = [
  'x' => 'Tesla',
  'y' => 'Coca-cola',
  'z' => 'Google',
  'w' => 'Facebook'
];
$replaced = array_replace($brandsA, $brandsB);
print_r($replaced);

在上面的代码中,brandAbrandB都有不同的键。这就是为什么当我们使用array_replace()函数时,它将从两个数组中合并输出。所以,输出结果如下:

PHP array_replace() Function Tutorial

在PHP中使用三个数组 array_replace()

如果我们使用三个数组,那么最后一个数组(array3)将覆盖之前的数组(array3)将覆盖之前的数组(a1和$a2)。

请看下面的代码:

<?php

// app.php

$brandsA = [
  'a' => 'Louis Vuitton',
  'b' => 'Hermès',
  'c' => 'Gucci',
  'd' => 'Prada',
  'e' => 'Chanel',
  'f' => 'Cartier'
];
$brandsB = [
  'x' => 'Tesla',
  'y' => 'Coca-cola',
  'z' => 'Google',
  'w' => 'Facebook'
];

$brandsC = [
  'a' => 'Rolex',
  'b' => 'Zara',
  'y' => 'Pepsico',
  'z' => 'Alibaba',
];
$replaced = array_replace($brandsA, $brandsB, $brandsC);
print_r($replaced);

请看下面的输出:

Using three arrays in PHP array_replace()

使用数字键

如果一个键存在于arrA中而不存在于arrB 中**。** 请看下面的代码:

<?php

// app.php

$arrA = ['disney', 'netflix', 'hulu'];
$arrB = [0 => 'sports', 1 => 'games', 2 => 'discovery'];

$replaced = array_replace($arrA, $arrB);
print_r($replaced);

请看输出:

Using numeric keys in PHP array_replace() function

本教程到此为止。