
	                	                 
array_merge_recursive 함수는 중첩된 배열을 합칠 때, 기존의 값을 모두 제거하고 새로운 값을 추가하는 문제가 있습니다. 
이 문제를 해결하기 위해, array_merge_recursive 함수 대신에 array_merge 함수를 사용할 수 있습니다. array_merge 함수는 중첩된 배열을 합칠 때, 기존의 값을 유지하고 새로운 값을 추가합니다.
예를 들어, 다음과 같은 배열이 있습니다.
#hostingforum.kr
php
$array1 = array(
    'a' => array('x' => 1, 'y' => 2),
    'b' => array('z' => 3)
);
$array2 = array(
    'a' => array('x' => 4, 'y' => 5),
    'c' => array('d' => 6)
);
array_merge 함수를 사용하여 두 배열을 합치면 다음과 같은 결과가 나옵니다.
#hostingforum.kr
php
$result = array_merge($array1, $array2);
print_r($result);
이 결과는 다음과 같습니다.
#hostingforum.kr
php
Array
(
    [a] => Array
        (
            [x] => 1
            [y] => 2
            [x] => 4
            [y] => 5
        )
    [b] => Array
        (
            [z] => 3
        )
    [c] => Array
        (
            [d] => 6
        )
)
array_merge 함수를 사용하면 중첩된 배열 'a'의 경우, 기존의 값과 새로운 값을 모두 유지할 수 있습니다.
또한, array_merge_recursive 함수 대신에 array_merge_recursive_deep 함수를 사용할 수도 있습니다. array_merge_recursive_deep 함수는 array_merge_recursive 함수와 유사하지만, 중첩된 배열을 더 깊게 합칠 수 있습니다.
예를 들어, 다음과 같은 배열이 있습니다.
#hostingforum.kr
php
$array1 = array(
    'a' => array(
        'x' => array('a' => 1, 'b' => 2),
        'y' => array('c' => 3, 'd' => 4)
    ),
    'b' => array('z' => 5)
);
$array2 = array(
    'a' => array(
        'x' => array('a' => 6, 'b' => 7),
        'y' => array('c' => 8, 'd' => 9)
    ),
    'c' => array('e' => 10)
);
array_merge_recursive_deep 함수를 사용하여 두 배열을 합치면 다음과 같은 결과가 나옵니다.
#hostingforum.kr
php
$result = array_merge_recursive_deep($array1, $array2);
print_r($result);
이 결과는 다음과 같습니다.
#hostingforum.kr
php
Array
(
    [a] => Array
        (
            [x] => Array
                (
                    [a] => Array
                        (
                            [0] => 1
                            [1] => 6
                        )
                    [b] => Array
                        (
                            [0] => 2
                            [1] => 7
                        )
                )
            [y] => Array
                (
                    [c] => Array
                        (
                            [0] => 3
                            [1] => 8
                        )
                    [d] => Array
                        (
                            [0] => 4
                            [1] => 9
                        )
                )
        )
    [b] => Array
        (
            [z] => 5
        )
    [c] => Array
        (
            [e] => 10
        )
)
array_merge_recursive_deep 함수를 사용하면 중첩된 배열을 더 깊게 합칠 수 있습니다.
2025-05-05 21:12