如何取得数组中前3个最大值的键值?最好是php语言,其他也可。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何取得数组中前3个最大值的键值?最好是php语言,其他也可。相关的知识,希望对你有一定的参考价值。

参考技术A #先倒叙,然后,取第前3个数据,键即可
$array = ['a' => 2, 'b' => 1, 'c' => 3, 'd' => 5, 'e' => 11];
arsort($array);
print_r(array_keys(array_slice($array, 0, 3)));

参考技术B $array = array('a'=>1,'b'=>4,'c'=>3,'d'=>2);
asort($array);
$b = array_chunk(array_keys($array),3);
print_r($b[0]);

$b[0] 里面的值就是。最大的3个值的键值
参考技术C $answer=array_sort($array);
这样$answer就被排序了,好了,后面你就按顺序取值好了。
参考技术D 是说按照由大到小排序之后的, 前三个键值? 还是说,前三个中,最大的那个数的键值?

PHP如何根据数组中的键值进行排序

主要是使用PHP的排序函数,asort()和arsort()。

为了减少代码的耦合性,我们将根据数组中的键值进行排序封装成一个函数

 1 <?php
 2 $array = array(
 3     array(name=>aa,price=>1050),
 4     array(name=>bb,price=>4300),
 5     array(name=>cc,price=>3100),
 6     array(name=>dd,price=>4900),
 7     array(name=>ee,price=>960),
 8     array(name=>ff,price=>6299),
 9     array(name=>gg,price=>1200)
10 );
11 function arr_sort($array,$key,$order="asc"){ //asc是升序 desc是降序
12     $arr_nums=$arr=array();
13     foreach($array as $k=>$v){
14         $arr_nums[$k]=$v[$key];
15     }
16     if($order==asc){
17         asort($arr_nums);
18     }else{
19         arsort($arr_nums);
20     }
21     foreach($arr_nums as $k=>$v){
22         $arr[$k]=$array[$k];
23     }
24     print_r($arr);
25 }
26 arr_sort($array,price);

 

以上是关于如何取得数组中前3个最大值的键值?最好是php语言,其他也可。的主要内容,如果未能解决你的问题,请参考以下文章

如何在 PHP 中的键 => 值对数组中获取最小值、最大值和平均值?

PHP如何根据数组中的键值进行排序

如何在键具有数组的多维数组中求和所有相同的键值?

php 中已知数组的键名,怎么获得键值?

如何在php中的数组中插入新的键值对?

php用正则匹配二维数组的键值