我想从我的数组中获得三个高值,但它也应该通过键正确排序。
我有这段代码:
<?php
$a = array(130, 1805, 1337);
arsort($a);
print_r($a);
?>
以上的输出如下:
Array
(
[1] => 1805
[2] => 1337
[0] => 130
)
它的工作正常,但我还希望将其键从最高值到最低值进行排序。
示例:
Array
(
[2] => 1805
[1] => 1337
[0] => 130
)
要明确:我希望按键排序:数组键号2将始终用于最高值,数组键号0将始终用于最低值。
我该怎么做?
/如果您不理解某事,请告诉我。
答案 0 :(得分:7)
rsort($array);
$top3 = array_reverse(array_slice($array, 0, 3));
答案 1 :(得分:2)
您应该使用array_reverse
。
<?php
$a = array(130, 1805, 1337);
arsort($a);
print_r(array_reverse($a));
?>
$a[0]
,$a[1]
,$[2]
轻松访问,以获取最高价值。
答案 2 :(得分:1)
$a = array(130, 1805, 1337);
arsort($a);
array_reverse($a);
会产生:
Array
(
[2] => 1807
[1] => 1337
[0] => 130
)
您可以找到有关它的更多信息here。
答案 3 :(得分:0)
我会尝试:
<?php
$a = array(130, 1805, 1337);
arsort($a);
$a = array_reverse($a);
答案 4 :(得分:0)
我无法使用已发布的任何答案(通过IDEOne.com测试)获得您描述的输出。
这是我的解决方案(demo):
$a = array(130, 1805, 1337);
$keys = array_keys($a); rsort($keys, SORT_NUMERIC);
$values = array_values($a); rsort($values, SORT_NUMERIC);
$a = array_combine(array_slice($keys, 0, 3), array_slice($values, 0, 3));
print_r($a);
输出:
Array
(
[2] => 1805
[1] => 1337
[0] => 130
)
答案 5 :(得分:0)
<?php
$array = array(130, 1805, 1337);
sort($array);
for ($i=0; $i <= count($array)-1; $i++)
$arr[]=$array[$i];
print_r($arr);
?>