Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/251.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP:数组排序_Php - Fatal编程技术网

PHP:数组排序

PHP:数组排序,php,Php,我的清单上有大约50个项目。我使用算法计算它们的值,并将它们的值添加到数组中 假设我在循环结束时得到: $vals = (51, 23, 77, 3, 8, 31, 17, 102, 87, (...)); 现在,如何获取数组中3个最高值的键? 在上面的例子中,我想得到: 8(102号键) 9(87的关键部分) 3(77号键) PS:我不想在DB中插入这些数据,然后用Order子句选择它们,我相信有一种更简单的方法 $vals = array(51, 23, 77, 3, 8, 31, 1

我的清单上有大约50个项目。我使用算法计算它们的值,并将它们的值添加到数组中

假设我在循环结束时得到:

$vals = (51, 23, 77, 3, 8, 31, 17, 102, 87, (...));
现在,如何获取数组中3个最高值的键?

在上面的例子中,我想得到:

  • 8(102号键)
  • 9(87的关键部分)
  • 3(77号键)
PS:我不想在DB中插入这些数据,然后用Order子句选择它们,我相信有一种更简单的方法

$vals = array(51, 23, 77, 3, 8, 31, 17, 102, 87);
arsort($vals);    
$keys = array_slice(array_keys($vals), 0, 3);

var_dump($keys); // array(3) { [0]=> int(7) [1]=> int(8) [2]=> int(2) }

结果与您希望得到的结果不同,因为php中的数组是0索引的

按降序排序,提取3。首先,完成

arsort($vals);
echo  "$vals[0], $vals[1], $vals[2]";

哇,太快了!非常感谢您的帮助。我如何才能获得密钥而不是值?