>  기사  >  백엔드 개발  >  2D 배열의 행을 한 열로 그룹화하고 다른 열을 합산하는 방법은 무엇입니까?

2D 배열의 행을 한 열로 그룹화하고 다른 열을 합산하는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-11-23 01:45:15835검색

How to Group Rows in a 2D Array by One Column and Sum Another?

행을 한 열로 그룹화하고 각 그룹 내에서 다른 배열을 합산하여 2D 배열 줄이기

이 시나리오에서는 2D 배열을 조작하려고 합니다. 각 그룹 내의 다른 열의 값을 집계하면서 특정 열을 기준으로 행을 구성하여 배열합니다.

이러한 요구 사항을 해결하려면 입력 배열의 행을 통해 반복적 접근 방식을 사용하는 것이 좋습니다.

$in = array(
    ['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'],
);

빈 출력 배열 만들기:

$out = array();

이제 각 행을 탐색합니다.

foreach ($in as $row) {

각 행 내에서 dd 값이 이미 있는지 확인합니다. $out 배열:

if (!isset($out[$row['dd']])) {

그렇지 않은 경우 초기화된 '수량'을 사용하여 dd 값에 대한 새 항목을 만듭니다.

$out[$row['dd']] = array(
    'dd' => $row['dd'],
    'quantity' => 0,
);

상관없이 현재 값을 추가하여 수량 값을 업데이트합니다. 행의 수량:

$out[$row['dd']]['quantity'] += $row['quantity'];

마지막으로 $out 배열을 수치적으로 인덱싱하여 원하는 축소된 2D를 달성합니다. 배열:

$out = array_values($out);

결과적으로 그룹화된 행이 있는 요약된 배열을 얻습니다.

var_dump($out);

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

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

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