Замена элементов массива элементами из другого массива

Для замены элементов массива элементами из другого массива или массивов используется функция array_replace().

Если ключ из первого массива присутствует во втором массиве, его значение заменяется на значение из второго массива. Если ключ есть во втором массиве, но отсутствует в первом — он будет создан в первом массиве. Если ключ присутствует только в первом массиве, то сохранится как есть. Если для замены передано несколько массивов, они будут обработаны в порядке передачи и более поздние массивы будут перезаписывать значения из предыдущих.

Пример использования:

echo '<pre>';
$a = array("кино", "музыка", "театр", "цирк", "школа");
$b = array(0=>"фильм", 3=>"песня", 4=>"гитара", 5=>"патифон", 6=>"башня");
$c = array(3=>"23", "80", "999", 6=>"транзистор", "диод");
$arr = array_replace($a, $b, $c);
print_r ($arr);
echo '</pre>';
Array
(
    [0] => фильм
    [1] => музыка
    [2] => театр
    [3] => 23
    [4] => 80
    [5] => 999
    [6] => транзистор
    [7] => диод
)

Если нам например необходимо заменить один элемент массива номер ключа которого нам не известен, то можно его заменить зная его значение:

echo '<pre>';
$a = array("кино", "музыка", "театр", "цирк", "школа");
$key = array_search("театр",$a); // находим элемент массива по значению и извлекаем его ключ
$b[$key] = "STOP"; // присваиваем ключ новому значению 
$arr = array_replace($a, (array)$b); // замена элемента массива новым значением
print_r ($arr);
echo '</pre>';
Array
(
    [0] => кино
    [1] => музыка
    [2] => STOP
    [3] => цирк
    [4] => школа
)

Добавить комментарий

Войти с помощью: