>  기사  >  백엔드 개발  >  2D 배열의 데이터를 열별로 그룹화하고 합산하는 방법은 무엇입니까?

2D 배열의 데이터를 열별로 그룹화하고 합산하는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-11-09 03:26:02162검색

How to Group and Sum Data in a 2D Array by Column?

2D 배열에서 데이터 그룹화 및 합산

이 시나리오에서는 특정 항목을 기준으로 2D 배열의 행을 그룹화하는 것을 목표로 합니다. 열의 값을 더한 다음 각 그룹 내의 다른 열의 값을 합산합니다.

입력 데이터:

[
    ['quantity' => 5,  'dd' => '01-Nov-2012'],
    ['quantity' => 10, 'dd' => '01-Nov-2012'],
    ['quantity' => 3,  'dd' => '02-Nov-2012'],
    ['quantity' => 4,  'dd' => '03-Nov-2012'],
    ['quantity' => 15, 'dd' => '03-Nov-2012'],
];

원하는 결과:

[
    ['quantity' => 15, 'dd' => '01-Nov-2012'],
    ['quantity' => 3,  'dd' => '02-Nov-2012'],
    ['quantity' => 19, 'dd' => '03-Nov-2012'],
];

구현:

이를 달성하려면 다음 단계를 따르세요.

  1. 입력 배열의 행을 반복합니다.
  2. 각 행에 대해:

    • 그룹화된 배열에 현재 행의 'dd' 값으로 인덱싱된 항목이 포함되어 있는지 확인하세요.
    • 그렇지 않은 경우 'dd' 값으로 항목을 생성하세요. 초기 '수량'은 0입니다.
    • 그룹화된 배열 항목의 '수량' 값을 현재 행의 '수량'만큼 증가시킵니다.
  3. 그룹화된 배열을 변환합니다. array_values()를 사용하여 숫자로 인덱스된 배열로 변환합니다.

다음 PHP 코드는 이 프로세스를 보여줍니다.

$in = array(array()); // your input
$out = array();
foreach ($in as $row) {
    if (!isset($out[$row['dd']])) {
        $out[$row['dd']] = array(
            'dd' => $row['dd'],
            'quantity' => 0,
        );
    }
    $out[$row['dd']]['quantity'] += $row['quantity'];
}
$out = array_values($out); // make the out array numerically indexed
var_dump($out);

이 접근 방식은 입력 데이터를 'dd' 열을 기준으로 효과적으로 그룹화하고 각 그룹의 '수량' 열 값을 합하여 원하는 출력을 생성합니다.

위 내용은 2D 배열의 데이터를 열별로 그룹화하고 합산하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.