날짜 Sort 관련 질문 드립니다.

날짜 Sort 관련 질문 드립니다.

QA

날짜 Sort 관련 질문 드립니다.

답변 3

본문

안녕하세요 

 

현재 랜덤으로 날짜를 뽑아서 출력을 시키는 부분을 하고 있습니다.

 

랜덤으로 뽑아서 출력까지는 문제없이 출력이 되는데

 

출력되는 부분을 정렬하고 싶습니다.

 

도움좀 구할 수 있을까요?

 

감사합니다.

현재 출력값은 아래와 같습니다.

 

//출력값

2018-03-05
2018-03-12
2018-03-19
2018-03-05
2018-03-08
2018-03-11
2018-03-14
2018-03-17
2018-03-20
2018-03-05
2018-03-06
2018-03-07
2018-03-08
2018-03-09
2018-03-10
2018-03-11
2018-03-12

 

 


<?php
$today = date("Y-m-d", time()-3600);
$s_date = '2018-03-01';
$e_date = ($today);
$arr = range(1, 7);
shuffle($arr);
foreach ($arr as $number) {
    //echo $number.'<br>';
for ($t=strtotime($s_date.'MON'),$e=strtotime($e_date);$t<=$e;$t+=86400*$number) // 지정 날짜 이후 요일 구해, 랜덤 날짜더해가며 날짜 출력
{//fdlf2304
$aaa = date('Y-m-d',$t).'<br>';
echo ($aaa);
}
}
?>

 
<?php
$today = date("Y-m-d", time()-3600);
$s_date = '2018-03-01';
$e_date = ($today);
$arr = range(1, 7);
shuffle($arr);
foreach ($arr as $number) {
for ($t=strtotime($s_date.'MON'),$e=strtotime($e_date);$t<=$e;$t+=86400*$number) // 지정 날짜 이후 요일 구해, 랜덤 날짜더해가며 날짜 출력
{
$aaa = date('Y-m-d',$t).'<br>';
echo ($aaa);
}
}
 
//$aaa 출력 즉, 날짜 출력을 Sort(정렬)하고 싶습니다. 어느 방법으로 해야 할까요?
?>

이 질문에 댓글 쓰기 :

답변 3

원하시는 답인지 모르겠습니다. 저도 초보자라..

 


<?php
$darray = array(); //배열 생성
$today = date("Y-m-d", time()-3600);
$s_date = '2018-03-01';
$e_date = ($today);
$arr = range(1, 7);
shuffle($arr);
foreach ($arr as $number) {
    //echo $number.'<br>';
    for ($t=strtotime($s_date.'MON'),$e=strtotime($e_date);$t<=$e;$t+=86400*$number) // 지정 날짜 이후 요일 구해, 랜덤 날짜더해가며 날짜 출력
        {//fdlf2304
            $aaa = date('Y-m-d',$t).'<br>';
            array_push($darray, $aaa); //배열에 추가
        }
}
//배열 정렬
rsort($darray);
//배열 출력
foreach ($darray as $value) {
    echo $value;
}
?>

배열에 다 넣고, sort() 쓰시면 될것 같아요.

http://php.net/manual/en/function.sort.php

아래와 같이 해보시겠어요?^^

 


<?php
$date_arr =  array(); //생성된 일시를 담을 배열 선언
$today = date("Y-m-d", time()-3600);
$s_date = '2018-03-01';
$e_date = ($today);
$arr = range(1, 7);
shuffle($arr);
foreach ($arr as $number) {
for ($t=strtotime($s_date.'MON'),$e=strtotime($e_date);$t<=$e;$t+=86400*$number) // 지정 날짜 이후 요일 구해, 랜덤 날짜더해가며 날짜 출력
{
array_push($date_arr, $t); // 생성된 일시를 배열에 모두 삽입만...
//$aaa = date('Y-m-d',$t).'<br>';
//echo ($aaa);
}
}
 
rsort($date_arr);// 위에서 삽입 완료된 시간 데이터들을 정렬(rsort는 내림차순 sort는 오름차순)
 
//$aaa 출력 즉, 날짜 출력을 Sort(정렬)하고 싶습니다. 어느 방법으로 해야 할까요?
foreach ($date_arr as $key => $val) {
    echo date('Y-m-d',$val)."<br>"; // 정렬된 배열을 순차 출력
}
?>
답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 7
© SIRSOFT
현재 페이지 제일 처음으로