PHP 배열안에 든 객체 정렬

$stalls라는 배열에 들어있는 객체들을 날짜 내림차순으로 정렬하려고 할 때, 아래처럼 한다(PHP 5.3 이상).

usort($stalls, function($a, $b){
	if($a->date == $b->date){
		return 0;
	}
	if($a->date > $b->date){
		return -1;
	}
	if($a->date < $b->date){
		return 1;
	}
});

오름차순으로 정렬하고 싶다면 -1과 1의 리턴 조건을 서로 바꾸면 된다.

PHP 5.2 이하에서는

usort의 두번째 인자값으로 js처럼 익명 함수를 그냥 넘겼는데, PHP 5.2까지는 익명 함수가 지원되지 않는다. 따라서 PHP 5.2 이하 버전을 사용하고 있다면 아래처럼 사용한다.

function sort_by_date($a, $b){
	if($a->date == $b->date){
		return 0;
	}
	if($a->date > $b->date){
		return -1;
	}
	if($a->date < $b->date){
		return 1;
	}
}
usort($stalls, 'sort_by_date');

함수를 만들고, 함수 이름을 넘겨 주는 방식이다.

👇 카테고리 글 목록

대표글

댓글 남기기