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');

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

카테고리

17년차 풀스택 웹 개발자 안형우입니다

웹 개발에서도 중요한 것은 개념입니다.
이 블로그에는 제가 개발하며 익힌 개념들을 정리합니다.

워드프레스를 오래 다뤄 왔고 강의도 두 편 찍었습니다.
– 인프런 “워드프레스 제대로 개발하기 어드민 편, 클라이언트 편
– 클래스101 “누구나 할 수 있는 워드프레스 홈페이지 만들기 – 기획부터 출시까지 한 방에 OK

유튜브 채널에 워드프레스 관련 팁들을 올리고 있습니다.

👉 소개 더 보기

대표글

댓글 남기기