배열 array_replace_recursive
(PHP 5 >= 5.3.0, PHP 7, PHP 8)
array_replace_recursive — 전달된 배열의 요소를 첫 번째 배열로 재귀적으로 교체합니다.
설명
array_replace_recursive(array $array
, array ...$replacements
): array
array_replace_recursive()는 array
의 값을 다음 모든 배열의 동일한 값으로 바꿉니다. 첫 번째 배열의 키가 두 번째 배열에 있는 경우 해당 값은 두 번째 배열의 값으로 대체됩니다. 키가 첫 번째 배열이 아닌 두 번째 배열에 있는 경우 첫 번째 배열에 생성됩니다. 키가 첫 번째 배열에만 존재하는 경우 그대로 유지됩니다. 교체를 위해 여러 배열이 전달된 경우 순서대로 처리되고 나중 배열이 이전 값을 덮어씁니다.
array_replace_recursive()는 재귀적입니다. 배열로 재귀하여 내부 값에 동일한 프로세스를 적용합니다.
첫 번째 배열의 값이 스칼라이면 두 번째 배열의 값으로 대체되며 스칼라 또는 배열일 수 있습니다. 첫 번째 배열과 두 번째 배열의 값이 모두 배열인 경우 array_replace_recursive()는 해당 값을 재귀적으로 바꿉니다.
매개변수
array
- 요소가 대체되는 배열입니다.
replacements
- 요소를 추출할 배열입니다.
반환 값
배열을 반환합니다.
Examples
예제 #1 array_replace_recursive() 예제
<?php
$base = array('citrus' => array( "orange") , 'berries' => array("blackberry", "raspberry"), );
$replacements = array('citrus' => array('pineapple'), 'berries' => array('blueberry'));
$basket = array_replace_recursive($base, $replacements);
print_r($basket);
$basket = array_replace($base, $replacements);
print_r($basket);
?>
위의 예는 다음을 출력합니다.
Array ( [citrus] => Array ( [0] => pineapple ) [berries] => Array ( [0] => blueberry [1] => raspberry ) ) Array ( [citrus] => Array ( [0] => pineapple ) [berries] => Array ( [0] => blueberry ) )
예제 #2 array_replace_recursive() 및 재귀 동작
<?php
$base = array('citrus' => array("orange") , 'berries' => array("blackberry", "raspberry"), 'others' => 'banana' );
$replacements = array('citrus' => 'pineapple', 'berries' => array('blueberry'), 'others' => array('litchis'));
$replacements2 = array('citrus' => array('pineapple'), 'berries' => array('blueberry'), 'others' => 'litchis');
$basket = array_replace_recursive($base, $replacements, $replacements2);
print_r($basket);
?>
위의 예는 다음을 출력합니다.
Array ( [citrus] => Array ( [0] => pineapple ) [berries] => Array ( [0] => blueberry [1] => raspberry ) [others] => litchis )
기타
- array_replace() - 전달된 배열의 요소를 첫 번째 배열로 바꿉니다.
- array_merge_recursive() - 하나 이상의 배열을 재귀적으로 병합