제목 | 배열 gorup by 함수 | ||
---|---|---|---|
글쓴이 | kaido | 작성시각 | 2019/10/14 18:01:41 |
|
|||
배열별로 집계를 내는 방법이 없을까 하다 찾아보니 이런식으로 구현이 가능 하더군요. 혹시 찾는분이 있을까봐 코드 공유해 드립니다 ㅎㅎ PS . 앞에 $this 제거 하고 함수 형태로 사용하셔도 무방합니다
class group { public function group_by($column_name, $rows) { $result = array(); $groups = $this->distinct($rows, $column_name); foreach ($groups as $group) { $result[$group] = $this->where($rows, array($column_name => $group)); } return $result; } public function distinct($rows, $column_name) { $column_values = array(); foreach ($rows as $row) { $column_values[$row[$column_name]] = 1; } return array_keys($column_values); } public function where($rows, $params) { $result = array(); foreach ($rows as $row) { $row_matched = true; foreach ($params as $column_name => $column_value) { if (!array_key_exists($column_name, $row) || $row[$column_name] != $column_value) { $row_matched = false; break; } } if ($row_matched) $result[] = $row; } return $result; } } $group = new group(); $arr = [ [0 => 'key'=>"A"] , [1 => 'key'=>"B"] , [2 => 'key'=>"B"] ]; print_r($group->group_by('배열키값 key', $arr));
|
|||
다음글 | Webpack - Bootstrap4 - media-b... | ||
이전글 | wp 스타일 후크 헬퍼 (2) | ||
변종원(웅파)
/
2019/10/14 18:58:47 /
추천
0
|
변종원(웅파)
/
2019/10/15 09:08:11 /
추천
0
끝판왕
|