728x90
안녕하세요,
오늘은 다차원 배열이 섞여있는 상황에서 여러 배열을 하나로 합칠 수 있는 array_merge_recursive() 함수에 대해 알아보겠습니다.
array_merge_recursive()
array_merge_recursive() 함수는 여러 배열을 재귀적으로 병합합니다.
즉, 같은 키가 겹치면 단순 덮어쓰기 하는 것이 아니라, 각각의 값을 배열로 묶어 합칩니다.
array_merge_recursive(array ...$arrays): array
array_merge()와의 차이점
$array1 = ['color' => 'red'];
$array2 = ['color' => 'blue'];
print_r(array_merge($array1, $array2));
print("<br>");
print_r(array_merge_recursive($array1, $array2));
결과
Array ( [color] => blue )
Array ( [color] => Array ( [0] => red [1] => blue ) )
array_merge()는 마지막 값을 덮어쓰기 하고,
array_merge_recursive()는 중복 키를 가진 값들을 모아서 배열로 합칩니다.
예제
<?php
$baseStats = [
'hp' => 100,
'attack' => 20,
'skills' => ['slash', 'block']
];
$itemBonus = [
'attack' => 5,
'skills' => ['fireball']
];
$mergedStats = array_merge_recursive($baseStats, $itemBonus);
print_r($mergedStats);
?>
결과
Array ( [hp] => 100 [attack] => Array ( [0] => 20 [1] => 5 ) [skills] => Array ( [0] => slash [1] => block [2] => fireball ) )
'PHP' 카테고리의 다른 글
[PHP] DatePeriod와 DateInterval 활용하여 반복되는 날짜 자동 처리하기 (0) | 2025.07.18 |
---|---|
[PHP] array_flip() 로 키-값 역전하기 (1) | 2025.07.11 |
[PHP] array_diff_assoc() 함수로 값과 키까지 비교하기 (0) | 2025.06.29 |
[PHP] array_intersect_key() 로 배열에서 필요한 정보만 추리기 (0) | 2025.06.22 |
[PHP] array_replace_recursive() 로 중첩 배열 덮어쓰기 (0) | 2025.06.15 |