문제:
이 문제는 다음과 같은 배열과 관련됩니다. 서로 다른 데이터베이스에 걸친 여러 데이터베이스 쿼리의 데이터. 목표는 두 개의 열 값("part" 및 "type")을 기준으로 배열 요소를 그룹화하고 각 그룹에 대한 세 번째 열("count")의 합계를 계산하는 것입니다.
배열 예 :
<code class="php">$arr1 = [ ['part' => '1', 'address' => 'aaa', 'type' => '1', 'count' => 5], ['part' => '1', 'address' => 'bbb', 'type' => '1', 'count' => 5], ['part' => '1', 'address' => 'ccc', 'type' => '1', 'count' => 5], ['part' => '2', 'address' => 'aaa', 'type' => '1', 'count' => 5], ['part' => '2', 'address' => 'bbb', 'type' => '1', 'count' => 5], ['part' => '2', 'address' => 'ccc', 'type' => '2', 'count' => 5] ];</code>
원하는 출력:
<code class="php">$arr2 = [ ['part' => '1', 'type' => '1', 'count' => 15], ['part' => '2', 'type' => '1', 'count' => 10], ['part' => '2', 'type' => '2', 'count' => 5] ];</code>
해결책:
배열 요소를 그룹화하려면 "count" 값을 합산하면 다음 함수를 사용할 수 있습니다.
<code class="php">function groupByPartAndType($input) { $output = Array(); foreach($input as $value) { $output_element = &$output[$value['part'] . "_" . $value['type']]; $output_element['part'] = $value['part']; $output_element['type'] = $value['type']; !isset($output_element['count']) && $output_element['count'] = 0; $output_element['count'] += $value['count']; } return array_values($output); }</code>
이 함수는 입력 배열을 반복하여 각 요소의 "part" 및 "type" 값을 식별합니다. 그런 다음 이러한 값을 키로 사용하여 출력 요소를 생성하거나 검색합니다. 각 키에 대해 함수는 "count" 필드가 없으면 초기화하고 해당 요소의 "count" 필드 값으로 이를 증가시킵니다. 마지막으로 그룹화된 요소가 포함된 배열을 반환합니다.
위 내용은 여러 열 값으로 다차원 배열을 그룹화하고 다른 열 값을 합산하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!