2차원 배열로 아래와 같은 배열이 있습니다.
$bb = [
['2022-05-16', 172, 0],
['2022-05-02', 79, 0],
['2022-05-02', 79, 0],
['2022-05-02', 172, 0],
['2022-05-02', 172, 0],
['2022-05-02', 172, 0],
['2022-05-02', 172, 0],
['2022-05-02', 172, 0],
['2022-05-02', 172, 0],
['2022-05-02', 172, 0],
['2022-05-02', 0, 173],
['2022-05-02', 0, 174],
['2022-05-02', 0, 174],
];
2차원 배열의 갯수별로 그룹화 하고 싶습니다. 어떻게 해야 할까요?
그룹화한 결과는
['2022-05-16', 172, 0]는 1
['2022-05-02', 79, 0]는 2
['2022-05-02', 172, 0]는 7
['2022-05-02', 0, 173] 는 1
['2022-05-02', 0, 174]는 2
가 나오도록 하면 됩니다
답변 1개 / 댓글 4개
채택된 답변
+20 포인트
2022-02-24 (목) 17:23:17
Copy
$group_bb;
foreach ($bb as $value) {
$value = implode(',', $value);
$group_bb[$value] = $group_bb[$value]+1;
}
이렇게 해보실래요?
배열 자체가 키값이 될 수 없어서 문자열로 변환했습니다.
답변에 대한 댓글 4개
sinbi
2022-02-24 (목) 18:19:23
이 코드로 테스트해봤는데, 저는 이런 에러가 나오네요.
NOTICE Undefined index: 2022-05-16,172,0 on line number 20
NOTICE Undefined index: 2022-05-02,79,0 on line number 20
NOTICE Undefined index: 2022-05-02,172,0 on line number 20
NOTICE Undefined index: 2022-05-02,0,173 on line number 20
NOTICE Undefined index: 2022-05-02,0,174 on line number 20
NOTICE Undefined index: 2022-05-16,172,0 on line number 20
NOTICE Undefined index: 2022-05-02,79,0 on line number 20
NOTICE Undefined index: 2022-05-02,172,0 on line number 20
NOTICE Undefined index: 2022-05-02,0,173 on line number 20
NOTICE Undefined index: 2022-05-02,0,174 on line number 20
BiHon
2022-02-24 (목) 18:21:02
$group_bb[$value]는 뜬금없이 등장하는 변수라서, 초기화 코드 넣어주면 좋습니다.
[code]
$data = [];
foreach ( $bb as $arr ) {
$key = implode('_', $arr);
if ( !isset($data[$key]) ) $data[$key] = 0;
$data[$key]++;
}
[/code]
[code]
$data = [];
foreach ( $bb as $arr ) {
$key = implode('_', $arr);
if ( !isset($data[$key]) ) $data[$key] = 0;
$data[$key]++;
}
[/code]
sinbi
2022-02-24 (목) 20:24:24
(다위, 백재훈, BiHon) 님, 감사합니다. ( ^ ______ ~ ) ===b
답변을 작성하려면 로그인이 필요합니다.