[英]Get three highest values from the array
我想從我的數組中獲得三個高值,但它也應該通過鍵正確排序。
我有這個代碼:
<?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將始終用於最低值。
我怎樣才能做到這一點?
如果你不明白,請告訴我。
rsort($array);
$top3 = array_reverse(array_slice($array, 0, 3));
你應該使用array_reverse
。
<?php
$a = array(130, 1805, 1337);
arsort($a);
print_r(array_reverse($a));
?>
通過$a[0]
, $a[1]
, $[2]
輕松訪問以獲得最高價值。
$a = array(130, 1805, 1337);
arsort($a);
array_reverse($a);
會產生:
Array
(
[2] => 1807
[1] => 1337
[0] => 130
)
你可以在這里找到更多相關信息。
<?php
$array = array(130, 1805, 1337);
sort($array);
for ($i=0; $i <= count($array)-1; $i++)
$arr[]=$array[$i];
print_r($arr);
?>
我會嘗試:
<?php
$a = array(130, 1805, 1337);
arsort($a);
$a = array_reverse($a);
我無法通過已發布的任何答案(通過IDEOne.com測試)獲得您描述的輸出。
這是我的解決方案( 演示 ):
$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
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.