【发布时间】:2011-09-11 07:19:14
【问题描述】:
我正在尝试找到一种通过深层对象项对数组进行排序的有效方法,示例如下:
数组方案:
array
[0] = animal
count->1
name->tiger
[1] = animal
count->3
name->lion
[2] = animal
count->4
name->monkey
[3] = animal
count->2
name->elephant
期望结果降序:
array
[2] = animal
count->4
name->monkey
[1] = animal
count->3
name->lion
[3] = animal
count->2
name->elephant
[0] = animal
count->1
name->tiger
谁能比这做得更好?或者可能改进它?
function order_by_count($animals){
$animals_order = array();
foreach($animals as $key => $animal){
$animals_order[$key] = $animal->count;
}
natsort($animals_order);
$master_animals_order = array_reverse(array_keys($animals_order));
$revised_animals = array();
foreach($master_animals_order as $key){
$animal = $animals[$key];
$revised_animals[] = $animal;
}
return $revised_animals;
}
【问题讨论】:
-
你看过
usort吗?