개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.06.20 01:57

array_sum 함수에 대한 질문

목록
  • ReactNative장인 20시간 전 2025.06.20 01:57 새글
  • 8
    1
선생님, array_sum 함수를 사용하여 배열의 모든 요소를 합치는데, 다음과 같은 코드를 작성했는데 왜 오류가 발생하는지 알려주세요.

php

$numbers = array(1, 2, 3, 4, 5);

$result = array_sum($numbers) * 2;

echo $result;



이 코드에서 array_sum 함수가 배열의 모든 요소의 합을 반환하는 것처럼 보이는데, 하지만 실제로 오류가 발생합니다. 왜 이런 오류가 발생하는지 알려주세요.

    댓글목록

    profile_image
    나우호스팅  20시간 전



    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

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 29,503건 / 7 페이지

검색

게시물 검색