I have an array that looks like this:
JavaScript
x
Array
(
[team1] => Array
(
[points] => 10
[players] => Array
(
)
)
[team2] => Array
(
[points] => 23
[players] => Array
(
)
)
many more teams
)
and I would like to sort the teams by the number of points each team has. I have tried this:
JavaScript
function sort_by_points($a,$b)
{
if ($a['points']==$b['points']) return 0;
return ($a['points']<$b['points'])?1:-1;
}
usort($this->wordswithdata, "sortbycount");
But that approach overrides the keys containing the teamnames and returns:
JavaScript
Array
(
[0] => Array
(
[points] => 23
[players] => Array
(
)
)
[1] => Array
(
[points] => 10
[players] => Array
(
)
)
etc
)
Is there any way to sort the array without overwriting the teamnames as the array keys?
Advertisement
Answer
Use the uasort function, that should keep the key => value associations intact.
(side note: you can do return $a['points'] - $b['points']
instead of the ifs)