Вместо того, чтобы переписывать ваши массивы, для этого лучше использовать встроенные функции usort
или uasort
. С их помощью вы можете реализовать свой собственный обратный вызов сортировки и добиться этого гораздо проще:
function winner_sort($a, $b) {
global $key;
return strcmp($a[$key], $b[$key]);
}
$key = $sortoption;
uasort($winner, 'winner_sort');
if ($_GET['winner'] == "1") {
$winner = array_reverse($winner);
}
С точки зрения «отображения только тех пользователей, у которых больше 100», вы хотите отфильтровать:
function winner_filter($item) {
global $key;
return $item[$key] > 100;
}
$winner = array_filter($winner, 'winner_filter');
(Также: если вы можете помочь, избегайте глобальных $key
. Однако я не уверен, каков ваш вариант использования. Если вам придется сделать это, анонимная функция, использующая PHP 5.3 с uses ($key)
, будет лучшая идея, или в свойстве класса для <5.3) </p>