PHP多维数组排序

时间:2011-10-14 01:04:33

标签: php arrays

我有以下名为$players的数组设置:

Array(
    [4153234567] => Array(
        [name] => JohnnyAppleSeed
        [rating] => 00
    )
    [4807173711] => Array(
        [name] => admin
        [rating] => 6000
    )
    [4801234562] => Array(
        [name] => 4801234562
        [rating] = > 00
    )
)

我需要对此数组进行排序并回显:

$name of person with highest rating
$name of person with lowest rating

然后将这些人从阵列中移除,然后重复,直到我感动了所有人。

有什么想法吗?

2 个答案:

答案 0 :(得分:4)

尝试usort

 usort($players, "player_sort");

 function player_sort($a,$b) {
      return $a['rating']>$b['rating'];
 }

http://www.php.net/manual/en/function.usort.php

排序后,您可以将第一个和最后一个元素设为最高和最低。

答案 1 :(得分:0)

鉴于您提供的数据,您实际上需要使用uasort - 除非数组的键(即.4153234567)对您无关紧要。否则原则和排序程序是相同的。

还要移除您将使用unset()的项目。如果您将密钥保存到$ first,$ last,那么

unset($players[$first]);
unset($players[$last]);