Назад к вопросам
JuniorТеорияЧасто
Что выведет программа?
<?php
$a = [1, 2];
$b = [3];
$c = ['x' => 1];
$d = ['x' => 2, 'y' => 3];
echo json_encode(array_merge($a, $b)), ' ', json_encode($a + $b), ' ';
echo json_encode($c + $d), ' ', json_encode([...$a, ...$b]), "\n";[1,2,3] [1,2] {"x":1,"y":3} [1,2,3]
- Ждать, что
$a + $bдопишет один список к другому:+сохраняет все ключи левого массива и добавляет только недостающие, поэтому[1, 2] + [3]— это[1, 2]. - Ждать, что в
+, как вarray_merge, при повторе строкового ключа победит правый массив:+оставляет левое значение, и'x'остаётся1.
- Как объединить два массива, если их целые ключи — идентификаторы, которые нельзя потерять?
- Что делает
array_merge, когда ключ'x'есть в обоих массивах?