Array
(
[0] => stdClass Object
(
[title] => 야옹이 -> 멍멍이 테스트1
[content] =>
[regdate] => 20180419210707
)
[1] => stdClass Object
(
[title] => 멍멍이 -> 야옹이 테스트2
[content] =>
[regdate] => 20180419195711
)
[2] => stdClass Object
(
[title] => 멍멍이 -> 야옹이 테스트3
[content] =>
[regdate] => 20180419183004
)
[3] => stdClass Object
(
[title] => 야옹이 -> 멍멍이 테스트4
[content] =>
[regdate] => 20180419210631
)
)
예를들어 위와 같은 형태의 배열이 있다고 가정하였을때
regdate 값을 기준으로 오래된 내용이 위로, 최신의 내용이 아래로 오도록 정렬하려면 어떻게 해야 하나요?
혹 아시는 분은 힌트를 부탁합니다!!
댓글 6
regdate 기준으로 정렬가능합니다.
자세한건 php 배열 정렬로 검색해보시길..
이 질문글을 올리기전에 구글에서 이미 php 배열 정렬 이라는 동일한 키워드로 검색해보았지만
인덱스를 기준으로 정렬하는 것은 있지만... 인덱스 내부에 들어있는 특정한 값을 기준으로
정렬하는건 찾을수가 없었네요 ㅠㅠ (몇개 나오긴 했지만... {@} 안에 넣으면 신텍스 오류... ?php 구문 안에 넣으면 오류는 안나지만 적용X)
좀더 찾아보도록 하겠습니다.
usort($array, function($a, $b) {
return $a->regdate > $b->regdate;
});
배열정렬을 검색하니 펑션을 사용하는 것들이 간혹 나오던데...
xe템플릿 내에서 {@ } 안에 넣으면 에러가 발생하여 사용을 할 수 없습니다 ㅠㅠ
<?php ?> 안에 넣으면 오류는 없습니다만.. 적용이 안됩니다.
php문에서 아래처럼 시도 해 보세요. xe에서 사용하는 배열의 이름이 $array라면 php에서는 $__Context->array라고 사용하시면 됩니다.
<?php
usort($__Context->array, function($a, $b) {
return $a->regdate > $b->regdate;
});
?>
필요한분 참고하시라고 전체소스 올립니다.
$sper->member_srl = $logged_info->member_srl;
$rper->member_srl = $receiver_info->member_srl;
$rmsg = executeQuery('communication.getSendedMessages', $rper);
$smsg = executeQuery('communication.getSendedMessages', $sper);
$tmsg = array_merge($rmsg->data, $smsg->data);
}
<?php
usort($__Context->tmsg, function($a, $b) {
return $a->regdate > $b->regdate;
});
$__Context->final = $__Context->tmsg;
?>
<div class="chat">
<!--@foreach($final as $key1 => $val1)-->
<div class="rechat">{$val1->title} {zdate($val1->regdate)}</div>
<!--@end-->
</div>
감사합니다!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
성공 하였습니다 ㅠㅠㅠㅠㅠ
카카오톡 대화방 처럼 한화면에서 받음/보냄이 교차되어 나오고
상대방에게 바로 전송할 수 있도록 수정하고 있었거든요...
(수신/발신 관련한 get부분 자체가 나누어져 있어서...
내가 보낸쪽지, 내가 받은쪽지 배열을 하나로 합쳐버렸거든요...)
코어 안건드리고 스킨단에서만 처리하고 있는데 갈길이 멉니다.