我在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 ......
任何帮助。只是不知道确切的命令
答案 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
答案 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);
注意: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;
}
?>