问题:如何用对象对多维数组进行排序?
状态:我有一个数组如下。
array(3) {
[0]=>
object(Photo_model)#25 (5) {
["id"]=>
int(5)
["file_name"]=>
string(36) "A49361605AE049D687CDC3FEAF7D3236.jpg"
["user_id"]=>
int(1)
["challenge_id"]=>
string(1) "2"
["score"]=>
int(19)
}
[1]=>
object(Photo_model)#28 (5) {
["id"]=>
int(2)
["file_name"]=>
string(36) "A49361605AE049D687CDC3FEAF7D3236.jpg"
["user_id"]=>
int(1)
["challenge_id"]=>
string(1) "2"
["score"]=>
int(10)
}
[2]=>
object(Photo_model)#29 (5) {
["id"]=>
int(3)
["file_name"]=>
string(36) "A49361605AE049D687CDC3FEAF7D3236.jpg"
["user_id"]=>
int(1)
["challenge_id"]=>
string(1) "2"
["score"]=>
int(15)
}
}
我试图按分数对数组进行排序。我创建了如下函数。
aarsort (&$array, 'score');
function aarsort (&$array, $key) {
$sorter=array();
$ret=array();
reset($array);
foreach ($array as $ii => $va) {
$sorter[$ii]=$va[$key];
}
arsort($sorter);
foreach ($sorter as $ii => $va) {
$ret[$ii]=$array[$ii];
}
$array=$ret;
}
但它不起作用。如何按键(score
)对多维数组进行排序?
结果应该是 id => 5,3,2