对 php 中的整数值进行排序

Sorting integer value in php

我在 php 文件中有 19 个变量。

$a = 20;
$b = 23;
$c = 2;
$d = 92;
$e = 51;
$f = 27;
$g = 20;
$h = 20;
.....
.....
$s = 32;

我需要的是只显示前 5 个值。并且某些变量具有相似的值。在那种情况下,我只需要显示前 5 个值中的第一个值。

我对执行此操作一无所知。

在收到下面给出的一些反馈后,我使用了数组和分类 这是示例-

<?php
$fruits = array("a" => "32", "b" => "12", "c" => "19", "d" => "18");
asort($fruits);
foreach ($fruits as $key => $val) {
    echo "$key = $val\n";
}
?>

输出如下所示:

b = 12 d = 18 c = 19 a = 32 

我需要相反的结果。意思是,32、19、18、12.....

任何帮助。只是不知道确切的命令

最好将变量的值放入数组中,然后 运行

sort($arr);(这是从低到高)。

rsort($arr); 从高到低排序。 http://php.net/manual/en/array.sorting.php

然后您可以在数组索引 0、1、2、3 和 4 处获取第一个值,这将是最大的数字。

所以:

$arr= array ($a,$b,$c, ....);
rsort($arr);
var_dump($arr); // gives the output.

$arr[0] // biggest number
$arr[4] // 5th biggest number.

它们需要是单独的变量吗?将值存储在数组中是更好的选择。因此,要么手动将所有变量放入数组中,要么将结构更改为更像:

$arr = array(
    'a' = 20,
    'b' = 23,
    'c' = 2,
    'd' = 92,
    'e' = 51,
     ....
     ....
    's' => 32
);

或类似的。然后使用sort()对数组进行排序:

sort($arr);

要获得前 5 名,请使用 array_slice():

$arr = array_slice($arr, 0, 5);

See demo

注意:根据所需结果,sort() 可能不是您的最佳选择。对于其他排序选项,请参阅手册:http://php.net/manual/en/array.sorting.php

$array=array();
for ($i=97;$i<=115;$i++){ //decimal char codes for a-s
  $var =chr($i);
  $array[]= $$var;  //variable variable $a- $s
}

asort($array);
var_dump($array);
<?php 
  array_push($data,$a);
  array_push($data,$b);
  .
  .
  .
  $sorted_array  = usort($data, 'mysort');
  $top5 = array_splice($sorted_array,5);
  if(in_array($your_variable,$top5)){
     return $top5[0];
  }else {
     return $top5;
  } 
  function mysort($a,$b){
      if ($a == $b) {
        return 0;
    }
    return ($a < $b) ? 1 : -1;
  }
 ?>

一个有趣的方法:

$a = 20;
$b = 23;
$c = 2;
$d = 92;
$e = 51;
$f = 27;
$g = 20;
$h = 20;

$array = compact(range('a', 'h'));
rsort($array);

foreach(array_slice($array, 0, 5) as $top) {
    echo $top, "\n";
}

输出

92 
51 
27 
23 
20

演示:http://3v4l.org/Wi8q7