> 데이터 베이스 > MySQL 튜토리얼 > 다차원 배열의 특정 열에 있는 값을 효율적으로 합산하는 방법은 무엇입니까?

다차원 배열의 특정 열에 있는 값을 효율적으로 합산하는 방법은 무엇입니까?

Linda Hamilton
풀어 주다: 2024-12-15 13:50:54
원래의
142명이 탐색했습니다.

How to Efficiently Sum Values in a Specific Column of a Multidimensional Array?

다차원 배열 열의 값 합계

다차원 배열은 특정 열을 합산하는 데 문제가 있습니다. 주어진 예제 배열을 고려하십시오.

$arr = [
    [0] => ['f_count' => 1, 'uid' => 105],
    [1] => ['f_count' => 0, 'uid' => 106],
    [2] => ['f_count' => 2, 'uid' => 107],
    [3] => ['f_count' => 0, 'uid' => 108],
    [4] => ['f_count' => 1, 'uid' => 109],
    [5] => ['f_count' => 0, 'uid' => 110],
    [6] => ['f_count' => 3, 'uid' => 111]
];
로그인 후 복사

원하는 출력은 f_count 열의 합계인 7입니다.

Foreach 루프가 없는 솔루션

PHP 5.5 이상에서는 이를 단순화하는 두 가지 기능을 제공합니다. task:

  • array_column: 배열에서 특정 열을 추출합니다.
  • array_sum: 배열의 값을 합합니다.

이러한 함수를 사용하면 foreach 없이 합계를 얻을 수 있습니다. 루프:

$f_count_column = array_column($arr, 'f_count');
$sum = array_sum($f_count_column);
로그인 후 복사

대체 접근 방식: 쿼리 재구성

다차원 배열을 검색하는 대신 쿼리를 재구성하여 1차원 배열을 반환할 수 있습니다.

$query = "SELECT SUM(f_count) AS total_f_count FROM users WHERE gid=:gid";

$stmt = $pdo->prepare($query);
$stmt->execute([':gid' => $gid]);
$row = $stmt->fetch(PDO::FETCH_ASSOC);

$total_f_count = $row['total_f_count'];
로그인 후 복사

위 내용은 다차원 배열의 특정 열에 있는 값을 효율적으로 합산하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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