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

날짜 Sort 관련 질문 드립니다. 채택완료

아우에로 7년 전 조회 2,536

안녕하세요 

 

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

 

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

 

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

 

도움좀 구할 수 있을까요?

 

감사합니다.

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

 

//출력값

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

 

 

</p>

<p><?php</p>

<p>$today = date("Y-m-d", time()-3600);</p>

<p>$s_date = '2018-03-01';</p>

<p>$e_date = ($today);</p>

<p>$arr = range(1, 7);</p>

<p>shuffle($arr);</p>

<p>foreach ($arr as $number) {</p>

<p>    //echo $number.'
';</p>

<p>for ($t=strtotime($s_date.'MON'),$e=strtotime($e_date);$t<=$e;$t+=86400*$number) // 지정 날짜 이후 요일 구해, 랜덤 날짜더해가며 날짜 출력</p>

<p>{//fdlf2304</p>

<p>$aaa = date('Y-m-d',$t).'
';</p>

<p>echo ($aaa);</p>

<p>}</p>

<p>}</p>

<p>?></p>

<p>



 </p>

<p><?php</p>

<p>$today = date("Y-m-d", time()-3600);</p>

<p>$s_date = '2018-03-01';</p>

<p>$e_date = ($today);</p>

<p>$arr = range(1, 7);</p>

<p>shuffle($arr);</p>

<p>foreach ($arr as $number) {</p>

<p>for ($t=strtotime($s_date.'MON'),$e=strtotime($e_date);$t<=$e;$t+=86400*$number) // 지정 날짜 이후 요일 구해, 랜덤 날짜더해가며 날짜 출력</p>

<p>{</p>

<p>$aaa = date('Y-m-d',$t).'
';</p>

<p>echo ($aaa);</p>

<p>}</p>

<p>}</p>

<p> </p>

<p>//$aaa 출력 즉, 날짜 출력을 Sort(정렬)하고 싶습니다. 어느 방법으로 해야 할까요?</p>

<p>?></p>

<p>

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

답변 3개

채택된 답변
+20 포인트
f
7년 전

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

 

</p>

<p><?php

$darray = array(); //배열 생성</p>

<p>$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.'
';

    for ($t=strtotime($s_date.'MON'),$e=strtotime($e_date);$t<=$e;$t+=86400*$number) // 지정 날짜 이후 요일 구해, 랜덤 날짜더해가며 날짜 출력

        {//fdlf2304

            $aaa = date('Y-m-d',$t).'
';

            array_push($darray, $aaa); //배열에 추가

        }

}</p>

<p>//배열 정렬

rsort($darray);</p>

<p>//배열 출력

foreach ($darray as $value) {

    echo $value;

}

?></p>

<p>

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

답변에 대한 댓글 1개

아우에로
7년 전
감사합니다 원하던거에여~~
정말 감사합니다. ~~

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

크리티컬팀

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

 

</p>

<p><?php</p>

<p>$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) // 지정 날짜 이후 요일 구해, 랜덤 날짜더해가며 날짜 출력

{</p>

<p><span style="font-family:Courier New">array_push($</span>date_arr<span style="font-family:Courier New">, </span>$t<span style="font-family:Courier New">); // 생성된 일시를 배열에 모두 삽입만...</span>

//$aaa = date('Y-m-d',$t).'
';

//echo ($aaa);

}

}

 </p>

<p><span style="font-family:Courier New"><span style="color:#0000bb">rsort</span><span style="color:#007700">(</span><span style="color:#0000bb">$</span></span>date_arr<span style="font-family:Courier New"><span style="color:#007700">);// 위에서 삽입 완료된 시간 데이터들을 정렬(rsort는 내림차순 sort는 오름차순)</span></span></p>

<p> </p>

<p>//$aaa 출력 즉, 날짜 출력을 Sort(정렬)하고 싶습니다. 어느 방법으로 해야 할까요?

<span style="font-family:Courier New"><span style="color:#007700">foreach (</span><span style="color:#0000bb">$</span></span>date_arr <span style="font-family:Courier New"><span style="color:#007700">as </span><span style="color:#0000bb">$key </span><span style="color:#007700">=> </span><span style="color:#0000bb">$val</span><span style="color:#007700">) {

    echo </span></span>date('Y-m-d',<span style="font-family:Courier New"><span style="color:#0000bb">$val)."
</span><span style="color:#dd0000">"</span></span><span style="color:#007700"><span style="font-family:Courier New">; </span></span><span style="font-family:Courier New"><span style="color:#007700">// 정렬된 배열을 순차 출력</span></span>

<span style="color:#007700"><span style="font-family:Courier New">}</span></span>



?>

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

답변에 대한 댓글 1개

아우에로
7년 전
감사합니다.
이거때문에 몇일을 고생했는지 ㅜ 정말 감사드립니다.~

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

7년 전

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

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

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

답변에 대한 댓글 3개

배모씨
7년 전
내림차순은 rsort()
아우에로
7년 전
답변 감사합니다.

배열에 $aaa 넣고 출력을 했는데 마찬가지로 Sort가 안되어서 나오네요 ㅜ 정녕 불가능한 코드일까요..?
배모씨
7년 전
점심 먹고 오는동안 밑에 다른분들이 친절히 소스를 남겨주셨네요^^

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

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

로그인