簡體   English   中英

從數組中獲取三個最高值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM