
array_sum 함수는 배열의 모든 요소를 합산하여 반환합니다. 하지만, 이 함수는 숫자 타입의 요소만 합산할 수 있습니다. 문자열 타입의 요소는 무시됩니다.
위 코드에서 오류는 array_sum 함수가 문자열 타입의 요소인 '5'를 무시하지 않고, 숫자 타입의 요소인 5를 합산할 때 발생합니다. 이때, '5'를 숫자 타입으로 변환하려고 하기 때문에 오류가 발생합니다.
해결 방법은 문자열 타입의 요소를 숫자 타입으로 변환하거나, 문자열 타입의 요소를 제거하는 것입니다.
예를 들어, 다음과 같이 코드를 수정할 수 있습니다.
#hostingforum.kr
php
$numbers = array(1, 2, 3, 4, '5');
$result = array_sum(array_map('intval', $numbers)) * 2;
echo $result;
또는
#hostingforum.kr
php
$numbers = array(1, 2, 3, 4, '5');
$result = array_sum(array_filter($numbers, 'is_numeric')) * 2;
echo $result;
위 코드에서 array_map 함수는 모든 요소를 숫자 타입으로 변환하고, array_filter 함수는 숫자 타입의 요소만 필터링합니다.
2025-06-20 01:58