날짜 Sort 관련 질문 드립니다. 채택완료
안녕하세요
현재 랜덤으로 날짜를 뽑아서 출력을 시키는 부분을 하고 있습니다.
랜덤으로 뽑아서 출력까지는 문제없이 출력이 되는데
출력되는 부분을 정렬하고 싶습니다.
도움좀 구할 수 있을까요?
감사합니다.
현재 출력값은 아래와 같습니다.
//출력값
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개
원하시는 답인지 모르겠습니다. 저도 초보자라..
</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개
댓글을 작성하려면 로그인이 필요합니다.
아래와 같이 해보시겠어요?^^
</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개
이거때문에 몇일을 고생했는지 ㅜ 정말 감사드립니다.~
댓글을 작성하려면 로그인이 필요합니다.
배열에 다 넣고, sort() 쓰시면 될것 같아요.
http://php.net/manual/en/function.sort.php">http://php.net/manual/en/function.sort.php
답변에 대한 댓글 3개
배열에 $aaa 넣고 출력을 했는데 마찬가지로 Sort가 안되어서 나오네요 ㅜ 정녕 불가능한 코드일까요..?
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
정말 감사합니다. ~~