PHP에서 배열의 열을 합산하는 방법

PHPz
풀어 주다: 2023-04-26 09:40:55
원래의
620명이 탐색했습니다.

PHP에서는 배열의 열을 합산하는 것이 일반적인 요구 사항입니다. 배열이 1차원 배열인 경우 array_sum() 함수를 사용합니다. 예를 들면 다음과 같습니다.

$array = array(1, 2, 3, 4, 5);
$sum = array_sum($array); // $sum = 15
로그인 후 복사

하지만 배열이 2차원 배열인 경우 먼저 해당 열의 모든 값을 추출한 다음 합산해야 합니다. array_column() 함수를 사용하여 컬럼의 값을 추출한 후, array_sum() 함수를 사용하여 해당 값의 합을 구할 수 있습니다. 예:

$records = array(
    array('name' => 'John', 'score' => 85),
    array('name' => 'Mary', 'score' => 92),
    array('name' => 'Peter', 'score' => 78),
    array('name' => 'Lisa', 'score' => 89)
);
$scores = array_column($records, 'score');
$sum = array_sum($scores); // $sum = 344
로그인 후 복사

위의 예에서 $records는 각 사람의 이름과 점수를 포함하는 2차원 배열입니다. array_column() 함수를 사용하여 모든 점수를 추출한 다음 array_sum() 함수를 사용하여 합산하여 총 점수가 344가 됩니다.

열의 값에 숫자가 아닌 유형(예: 문자열)이 포함된 경우 먼저 유형 변환을 통해 숫자로 변환해야 한다는 점에 유의하세요. 그렇지 않으면 합계 결과가 부정확할 수 있습니다. 예:

$records = array(
    array('name' => 'John', 'score' => '85'),
    array('name' => 'Mary', 'score' => '92'),
    array('name' => 'Peter', 'score' => '78'),
    array('name' => 'Lisa', 'score' => '89')
);
$scores = array_column($records, 'score');
$sum = array_sum($scores); // $sum = 0
로그인 후 복사

위 예에서 $records의 점수는 모두 문자열 유형입니다. 직접 합산하면 0이라는 부정확한 결과를 얻게 됩니다. array_column() 함수의 세 번째 인수를 지정하여 숫자 유형으로 변환할 수 있습니다. 예:

$records = array(
    array('name' => 'John', 'score' => '85'),
    array('name' => 'Mary', 'score' => '92'),
    array('name' => 'Peter', 'score' => '78'),
    array('name' => 'Lisa', 'score' => '89')
);
$scores = array_column($records, 'score', 'name');
$scores = array_map('intval', $scores);
$sum = array_sum($scores); // $sum = 344
로그인 후 복사

위의 예에서는 array_column() 함수를 사용하여 각 사람의 점수를 추출하고 이름을 키로, 점수를 값으로 사용하여 새 배열에 저장합니다. 그런 다음 array_map() 함수를 사용하여 이 값을 유형 변환하고 마지막으로 array_sum() 함수를 사용하여 합산하여 올바른 결과인 344를 얻습니다.

요약하자면, PHP에서는 배열의 열을 합산하는 것이 어렵지 않습니다. 데이터 유형에만 주의하면 됩니다.

위 내용은 PHP에서 배열의 열을 합산하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿