일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 코딩테스트
- File
- dotNET
- windows
- chashtag
- csharp
- windows10
- programmers
- nullable
- ListView
- IValueConverter
- Microsoft
- logging
- mysql
- Coding
- coding-test
- commit
- Process
- string
- .net
- WPF
- Github
- convert
- log
- Visual Studio
- git
- algorithm
- tls
- C#
- Binding
Archives
- Today
- Total
CHashtag
[PHP] Array의 내의 Object의 특정 요소로 정렬하기 본문
반응형
안녕하세요.
오늘은 Object가 담겨있는 Array를 Object의 특정 요소로 정렬하는 방법에 대해 알아보도록 하겠습니다.
Array 데이터는 아래와 같다고 가정합니다.
Array
(
[0] => stdClass Object
(
[name] => Henry
[age] => 41
)
[1] => stdClass Object
(
[name] => John
[age] => 22
)
[2] => stdClass Object
(
[name] => Kevin
[age] => 38
)
)
이런 Array의 경우 일반적인 sort로는 정렬이 불가능합니다. 왜냐하면 정렬 기준이 명확하지 않기 때문이죠.
그렇기 때문에 정렬 기준을 정의해주어야 합니다.
아래는 나이순으로 정렬하는 방법입니다.
usort($temp_array, function($a, $b) {return strcmp($a->age, $b->age);});
이번에는 함수로 분리하도록 하겠습니다.
usort($group_storage_list, "sortFunction");
public function sortFunction($a, $b)
{
return strcmp($a->age, $b->age);
}
주의할점은 usort의 두번째 인자에 string으로 넘겨줘야 한다는 것입니다.
이번에는 클래스 함수로 만들어보겠습니다.
class someClass {
public function main() {
usort($group_storage_list, array($this, "sortFunction"));
}
public function sortFunction($a, $b) {
return strcmp($a->age, $b->age);
}
}
이런 경우에는 array로 넘깁니다.
또한 $this는 string으로 넘기지 않습니다.
이번에는 static function 으로 변경해 보겠습니다.
class someClass {
public function main() {
usort($group_storage_list, array("someClass", "sortFunction"));
}
public static function sortFunction($a, $b) {
return strcmp($a->age, $b->age);
}
}
이번에는 class와 함수를 순서대로 string으로 넘겨주면 됩니다.
오늘도 평화로운 PHP..
Using usort in php with a class private function
ok using usort with a function is not so complicated This is what i had before in my linear code function merchantSort($a,$b){ return ....// stuff; } $array = array('..','..','..'); to sort i
stackoverflow.com
감사합니다.
도움이 되었길 바랍니다.
반응형