0
배열에서 두 가지 기준으로 정렬하고 싶습니다. 첫 번째 기준은 두 번째 범주 및 제목입니다.여러 기준에 따라 배열을 정렬하는 방법은 무엇입니까?
usort()를 사용해 보았지만 작동하지 않습니다.
이 작업을 수행하는 PHP 함수가 있습니까?
내 원래 배열 :
Array
(
[0] => stdClass Object
(
[id] => 1
[category] => cat1
[title] => title1
)
[1] => stdClass Object
(
[id] => 3
[category] => cat2
[title] => z
)
[2] => stdClass Object
(
[id] => 2
[category] => cat1
[title] => title2
)
[3] => stdClass Object
(
[id] => 4
[category] => cat2
[title] => a
)
)
나는이를 좋아하는 것 :
Array
(
[0] => stdClass Object
(
[id] => 1
[category] => cat1
[title] => title1
)
[1] => stdClass Object
(
[id] => 2
[category] => cat1
[title] => title2
)
[2] => stdClass Object
(
[id] => 4
[category] => cat2
[title] => a
)
[3] => stdClass Object
(
[id] => 3
[category] => cat2
[title] => z
)
)
감사합니다. 내가 방법을 발견하기 때문에 많이 시도하지 않은
:
usort($object, 'sort');
function sort($a,$b){
if($a->category == $b->category){
if($a->title == $b->title){
return 0;
}else{
return ($a->title < $b->title) ? -1 : 1;
}
}else{
return ($a->category < $b->category) ? -1 : 1;
}
}
그러나 그것은 또한() multisort와 함께 작동 :
foreach ($object as $sort_key => $sort_row) {
$category[$sort_key] = $sort_row->acls_category;
$title[$sort_key] = $sort_row->acls_title;
}
array_multisort($category, SORT_ASC, $title, SORT_ASC, $object);
이 HTTP를 사용해보십시오 : //nl1.php합니다. net/array_multisort –
'usort()'와 어떤 비교 함수를 사용 했습니까? – Lukas