행을 한 열로 그룹화하고 각 그룹 내에서 다른 배열을 합산하여 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!