
parse_str 함수를 사용할 때, 동일한 키가 여러 번 존재할 경우 마지막 키에 해당하는 값을 할당하는 방식으로 동작합니다. 이 문제를 해결하기 위해, 동일한 키가 여러 번 존재하는 경우에 대해 별도의 처리를 하도록 수정할 수 있습니다.
예를 들어, 동일한 키가 여러 번 존재하는 경우에 대해 배열에 추가하는 방식으로 처리할 수 있습니다.
#hostingforum.kr
php
parse_str("key=value&key2=value2", $output);
$output['key'][] = 'value2';
print_r($output);
위 코드를 실행하면, 다음과 같은 결과가 출력됩니다.
#hostingforum.kr
php
Array
(
[key] => Array
(
[0] => value
[1] => value2
)
[key2] => value2
)
또는, 동일한 키가 여러 번 존재하는 경우에 대해 별도의 함수를 사용하는 방식으로 처리할 수 있습니다.
#hostingforum.kr
php
function parse_str_multiple($str, &$output) {
$pairs = explode('&', $str);
foreach ($pairs as $pair) {
list($key, $value) = explode('=', $pair);
if (isset($output[$key])) {
if (!is_array($output[$key])) {
$output[$key] = array($output[$key]);
}
$output[$key][] = $value;
} else {
$output[$key] = $value;
}
}
}
parse_str_multiple("key=value&key2=value2", $output);
print_r($output);
위 코드를 실행하면, 다음과 같은 결과가 출력됩니다.
#hostingforum.kr
php
Array
(
[key] => Array
(
[0] => value
[1] => value2
)
[key2] => value2
)
위의 코드를 통해, 동일한 키가 여러 번 존재하는 경우에 대해 별도의 처리를 하도록 수정할 수 있습니다.
2025-03-06 09:52