2차원 배열의 요소의 갯수는 어떻게?

2차원 배열의 요소의 갯수는 어떻게?

QA

2차원 배열의 요소의 갯수는 어떻게?

본문

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


$group_bb;
foreach ($bb as $value) {
    $value = implode(',', $value);
    $group_bb[$value] = $group_bb[$value]+1;
}

이렇게 해보실래요?
배열 자체가 키값이 될 수 없어서 문자열로 변환했습니다.

이 코드로 테스트해봤는데, 저는 이런 에러가 나오네요.

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

$group_bb[$value]는 뜬금없이 등장하는 변수라서, 초기화 코드 넣어주면 좋습니다.


$data = [];
foreach ( $bb as $arr ) {
    $key = implode('_', $arr);
    if ( !isset($data[$key]) ) $data[$key] = 0;
    $data[$key]++;
}

답변을 작성하시기 전에 로그인 해주세요.
전체 31
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT