
array_walk_recursive 함수는 중첩된 배열을 처리할 때, 하위 배열의 키가 중복되는 경우 에러를 발생시킬 수 있습니다. 이 문제를 해결하기 위해서는 중복되는 키를 제거하거나, 중복되는 키를 처리하는 방법을 사용해야 합니다.
중복되는 키를 제거하는 방법은 다음과 같습니다.
#hostingforum.kr
php
$arr = [
'a' => 1,
'b' => [
'c' => 2,
'c' => 3, // 중복되는 키
'd' => 4
],
'e' => 5
];
// 중복되는 키를 제거하는 함수
function remove_duplicate_keys($array) {
$result = [];
foreach ($array as $key => $value) {
if (is_array($value)) {
$value = remove_duplicate_keys($value);
}
$result[$key] = $value;
}
return array_values($result); // 중복되는 키를 제거
}
// 중복되는 키를 제거한 배열을 array_walk_recursive 함수에 전달
array_walk_recursive(remove_duplicate_keys($arr), function($value, $key) {
echo "$key: $valuen";
});
중복되는 키를 처리하는 방법은 다음과 같습니다.
#hostingforum.kr
php
$arr = [
'a' => 1,
'b' => [
'c' => 2,
'c' => 3, // 중복되는 키
'd' => 4
],
'e' => 5
];
// 중복되는 키를 처리하는 함수
function handle_duplicate_keys($array) {
$result = [];
foreach ($array as $key => $value) {
if (is_array($value)) {
$value = handle_duplicate_keys($value);
}
if (isset($result[$key])) {
$result[$key] .= ', ' . $value;
} else {
$result[$key] = $value;
}
}
return $result;
}
// 중복되는 키를 처리한 배열을 array_walk_recursive 함수에 전달
array_walk_recursive(handle_duplicate_keys($arr), function($value, $key) {
echo "$key: $valuen";
});
위의 예제에서, 중복되는 키를 제거하는 함수 `remove_duplicate_keys`와 중복되는 키를 처리하는 함수 `handle_duplicate_keys`를 사용하여 중복되는 키를 처리할 수 있습니다.
2025-04-19 18:56