在php中对整数值进行排序

时间:2015-01-06 02:40:55

标签: php sorting variables

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

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

我需要什么,我只需要显示前5个值。某些变量也有类似的价值。在这种情况下,我只需要在前5个值中显示第一个值。

我对此没有任何线索。

在收到一些反馈后,我使用了数组和asort 这是示例 -

<?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 ......

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

5 个答案:

答案 0 :(得分:4)

最好将变量的值放入数组并运行

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.

答案 1 :(得分:3)

这是一个有趣的方法:

$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

答案 2 :(得分:2)

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

$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

答案 3 :(得分:0)

$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);

答案 4 :(得分:0)

<?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;
  }
 ?>