코딩 공부/PHP

[PHP] - 날짜 기준으로 연관배열 합치기 -1. 날짜 연관 배열 만들기

hg_96 2022. 5. 10. 11:32
 
private function makeArrDateData ($dateVal, $interval, $makeKey, $time) {

        $i = 0;
        if ($interval == "month") {
            while ($i < $dateVal) {

                $dateTime = date("Ym",strtotime("-".$i." ".$interval, strtotime($time)));
                $dataArrSum[$i][$makeKey] = $dateTime;
                $i += 1;
            }
        } else {
            while ($i < $dateVal) {

                $dateTime = date("Ymd",strtotime("-".$i." ".$interval, strtotime($time)));
                $dataArrSum[$i][$makeKey] = $dateTime;
                $i += 1;
            }
        }

        return $dataArrSum;
    }
 
 

개발스토리

날짜를 기준으로 뿌려줘야하는데 데이터를 들고와보니 데이터가 날짜별로 모두 채워져있다면 좋았겠지만 데이터가 들쭉날쭉했다 여러테이블에서 가져오다보니 쿼리문도 여러개가 나가서 여러개의 데이터를 합쳐야하는 상황이었다 그나마 데이터가 잘 들어간 데이터를 기준으로 합치려고 시도했지만 만약 이데이터중 하나라도 빠져있는데 다른 데이터는 데이터가 있다면 해당날짜의 데이터가 누락되는 대참사가 벌어진다.. 

결국 열심히 쓴 코드는 과감하게 버리고 날짜가 온전히 다들어간 연관배열이 필요했다.

해당 함수는 원하는 길이만큼 $dateVal에 int형을 주고

$interval 에 날짜간의 간격을 지정해주면된다 일일데이터의 경우 day를 주간의 경우 week를

$makeKey 에 지정하고싶은 연관배열의 이름을 주면된다 

$time에는 처음 시작할 날짜형식을 주면된다 나는 날짜형식을 20200510으로 주었다