array_replace

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

array_replaceЗаменяет элементы массива элементами других массивов

Описание

array_replace(array $array, array ...$replacements): array

Функция array_replace() создаёт новый массив и присваивает новому массиву элементы, которые извлекла из каждого ключа каждого входного массива. Функция использует значение из самого правого входного массива, если один и тот же ключ встречается в нескольких входных массивах.

Функция array_replace() не обрабатывает элементы рекурсивно, а заменяет значение каждого ключа как только встречает ключ в следующем массиве.

Список параметров

array

Массив, элементы которого требуется заменить.

replacements

Массивы, из которых функция извлечёт элементы. Значения следующего массива перезаписывают значения предыдущего.

Возвращаемые значения

Функция возвращает массив (array).

Примеры

Пример #1 Пример замены элементов массива элементами других массивов функцией array_replace()

<?php

$base
= array("апельсин", "банан", "яблоко", "малина");
$replacements = array(0 => "ананас", 4 => "вишня");
$replacements2 = array(0 => "виноград");

$basket = array_replace($base, $replacements, $replacements2);
var_dump($basket);

?>

Результат выполнения приведённого примера:

array(5) {
  [0]=>
  string(16) "виноград"
  [1]=>
  string(10) "банан"
  [2]=>
  string(12) "яблоко"
  [3]=>
  string(12) "малина"
  [4]=>
  string(10) "вишня"
}

Пример #2 Пример обработки вложенных массивов

<?php

$base
= [ 'цитрусовые' => [ 'апельсин', 'лимон' ], 'семечковые' => [ 'яблоко' ] ];
$replacements = [ 'цитрусовые' => [ 'грейпфрут' ] ];
$replacements2 = [ 'цитрусовые' => [ 'кумкват', 'цитрон' ], 'семечковые' => [ 'мушмула' ] ];

$basket = array_replace($base, $replacements, $replacements2);
var_dump($basket);

?>

Результат выполнения приведённого примера:

array(2) {
  ["цитрусовые"]=>
  array(2) {
    [0]=>
    string(14) "кумкват"
    [1]=>
    string(12) "цитрон"
  }
  ["семечковые"]=>
  array(1) {
    [0]=>
    string(14) "мушмула"
  }
}

Смотрите также

  • array_replace_recursive() - Рекурсивно заменяет элементы первого массива элементами переданных массивов
  • array_merge() - Сливает один или несколько массивов