| 제목 | 배열 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
끝판왕
|