테스트 사이트 - 개발 중인 베타 버전입니다

날짜가 같은 값을 가져오려면? 채택완료

다위 3년 전 조회 1,864

bb1 배열은 아래와 같습니다. 

$bb1 = [

    ['2022-05-16', 123],

    ['2022-05-02', 233],

    ['2022-05-02', 333],

    ['2022-05-02', 433],

    ['2022-05-02', 533],

    ['2022-05-02', 633],

    ['2022-05-02', 733],

    ['2022-05-02', 833],

    ['2022-05-02', 933],

    ['2022-05-02', 191],

    ['2022-05-03', 192],

    ['2022-05-03', 193],

    ['2022-05-02', 194],

    ['2022-05-03', 195],

    ['2022-05-02', 196],

    ['2022-05-02', 197]

];

 

결과는 아래처럼 나오게 하고 싶습니다. 

2022-05-16 = 123

2022-05-02 = 233, 333, 433, 533, 633, 733, 833, 933, 191, 194, 196, 197

2022-05-03 = 192, 193, 195

 

이렇게 나오게 하고 싶습니다

어떻게 해야할까요?

댓글을 작성하려면 로그인이 필요합니다.

답변 2개

채택된 답변
+20 포인트
그누위즈

</p>

<p>$bb1 = [

    ['2022-05-16', 123],

    ['2022-05-02', 233],

    ['2022-05-02', 333],

    ['2022-05-02', 433],

    ['2022-05-02', 533],

    ['2022-05-02', 633],

    ['2022-05-02', 733],

    ['2022-05-02', 833],

    ['2022-05-02', 933],

    ['2022-05-02', 191],

    ['2022-05-03', 192],

    ['2022-05-03', 193],

    ['2022-05-02', 194],

    ['2022-05-03', 195],

    ['2022-05-02', 196],

    ['2022-05-02', 197]

];</p>

<p>$arr = array();

foreach ($bb1 as $key => $val) {

    $arr[$val[0]][] = $val[1];

}</p>

<p>foreach ($arr as $key => $val) {

    $val_implode = implode(',', $val);

    echo $key." = ".$val_implode."
";

}

 </p>

<p>

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

다위
3년 전
$bb1 = [
['2022-04-26', 187, 0, 8942],
['2022-04-21', 187, 0, 8800],
['2022-04-21', 187, 0, 8801],
['2022-04-21', 0, 22, 8798],
['2022-04-30', 0, 81, 4852],
['2022-04-30', 0, 81, 4851],
['2022-04-03', 0, 13, 2145],
['2022-04-29', 0, 14, 2136]
];

결과는
2022-04-26, 187, 0 = 8942
2022-04-21, 187, 0 = 8800, 8801
2022-04-21, 0, 22 = 87998
2022-04-30', 0, 81 = 4852, 4851
2022-04-03', 0, 1 = 2145
2022-04-29', 0, 14 = 2136
이렇게 나오려면 어떻게 해야할까요?

댓글을 작성하려면 로그인이 필요합니다.

배열이 DB에서 가져온 것이라면

group by를 활용해 보세요.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 4개

다위
3년 전
group by 어떻게 사용해야 할까요?
날짜가 나오는 항목은 계산된 항목이라 테이블의 항목이 존재하지 않습니다.
첫번째 배열을 예로 든다면 ['2022-04-26', 187, 0, 8942]
되어있는 배열은 첫번째 항목은 계산된 값, 두번재, 세번째, 네번째값은 db 에 있는 값들입니다.
첫번째 항목과 두번째, 세번째 항목을 group by로 하면 될것 같은데
말씀드렸듯이 첫번째항목은 계산 값이라 group by 를 할수 없다고 생각해서 배열로 만들어서 처리하려고 했던 것입니다.
혹시 계산된 값을 사용하여 db에서 group by를 할수 있는 방법이 있을까요?
제가 사용하는 db는 mysql(maria db)입니다.
엑스엠엘
3년 전
기초 데이터가 있는 테이블 샘플로 몇 줄을, 설명과 함께 올려 보세요.
다위
3년 전
첫번째항목은 종료예정일로 항목명은 expt_date이고 두번째항목은 단과번호 lecture_no 세번째항목은 패키지번호 package_no이고 마지막은 테이블의 일련번호로 uid이고 자동으로 증가하며 일치하는것이 없는항목입니다
첫번째항목만제외하면 모든항목은 하나의 테이블에서 가져올수 있습니다
엑스엠엘
3년 전
ssh나 phpmyadmin 등으로
select 해서
실제 데이터를 보여 주시면 좋겠습니다.

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인