Почему в первом коде "1" ключ не заменяется, а втором элемент "b" заменяется?
<?php
$inventory = [
"0" => ["sku" => "81231846523248", "name" => "Spilvens", "price" => "12.99"],
"1" => ["sku" => "84751530004684", "name" => "Pleds", "price" => "24.99"],
"2" => ["sku" => "81474113134254", "name" => "Aizkari", "price" => "19.99"],
"3" => ["sku" => "84554454386186", "name" => "Veļas grozs", "price" => "29.99"],
];
$replace_inv = ["0" => ["sku" => "81231846523248", "name" => "Spilvens HOME", "price" => "14.99"]];
$inventory = array_merge($inventory, $replace_inv);
echo $inventory["0"]["name"];
?>
<!-- Второй код -->
<br>
<?php
$a = [
"a" => ["sku" => "81231846523248", "name" => "Spilvens", "price" => "12.99"],
"b" => ["sku" => "81231846523248", "name" => "Spilvens", "price" => "12.99"]
];
$b = ["b" => ["sku" => "81231846523248", "name" => "Spilvens HOME", "price" => "14.99"]];
$a = array_merge($a, $b);
echo $a["b"]["name"];
?>'
Отличие от "подобного" вопроса - он блин другой.
читаем документацию к array_merge
Если входные массивы имеют одинаковые строковые ключи, тогда каждое последующее значение будет заменять предыдущее.
Однако, если массивы имеют одинаковые числовые ключи, значение, упомянутое последним, не заменит исходное значение, а будет добавлено в конец массива.
Напомню также, что помимо функции объединения есть и оператор объединения +
.
Если вы хотите дополнить первый массив элементами второго без перезаписи элементов первого массива и без переиндексации, используйте оператор объединения массивов +:
Ключи из первого массива будут сохранены. Если ключ массива существует в обоих массивах, то будет использован элемент из первого массива, а соответствующий элемент из второго массива будет проигнорирован.
Так что поведение, которого вы хотите добиться будет простым:
$inventory = $replace_inventory + $inventory;
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Есть проект на Laravel, закинул его на сервер "Nginx" как сделать корневую папку "Public"? Вот сам файл nginxconf
Как во время компиляции узнать количество цифр в целой части числа?
Есть программа в которой определяется переменная типа stringПосле ее определения в hex editor'е присутствует эта строка