【问题标题】:Get 3 lowest values from an array, PHP从数组中获取 3 个最低值,PHP
【发布时间】:2012-04-10 14:36:08
【问题描述】:

所以我知道min() 可以让我从数组中获取最小值,但是我需要从数组中获取 3 个最小值。

假设我的数组名为$myArray:

我在我的阵列上使用了asort($myArray),然后print_r($myArray) 输出了这个:

Array (
    [137] => 4.90416668118
    [135] => 7.1203544474
    [18] => 7.2476262434
    [81] => 8.37903400152
    [33] => 9.1074567001
    [4] => 9.90788482793
    [138] => 10.2493339987
    [5] => 11.6024401676
    [63]...and so on until
    [124] => 8727.73285117
    [153] => 8727.73285117
    [117] => 8727.73285117
)

如果需要,我怎样才能获得前 3 个值或第 X 个值...

我应该指定:丢失钥匙是否可以做到这一点?

【问题讨论】:

    标签: php arrays sorting


    【解决方案1】:
    asort($yourarray, SORT_NUMERIC);
    print_r(array_slice($yourarray, 0, 3, true));
    

    http://www.php.net/manual/en/function.asort.php

    http://www.php.net/manual/en/function.array-slice.php

    【讨论】:

    • 无论如何要在不丢失钥匙的情况下做到这一点?很可能会将其标记为答案 array_slice 非常有用,我现在可能可以得到我需要的东西......
    • 是的,只需将最后一个参数设置为true,即可保留密钥。
    • 黄金!谢谢。只要它允许我就会接受......它就在文档中,不是吗......
    【解决方案2】:

    与 Brad 的回答类似,但使用 ksort 保留关联数组中的键:

    ksort( $arr );
    print_r( array_slice( $arr, 0, 3, true ) );
    

    【讨论】:

    • asort() 维护密钥关联,不是吗?我以为ksort() 是按键排序的,这不是这里需要的。他想要按值排序。
    猜你喜欢
    • 1970-01-01
    • 2021-05-15
    • 2014-02-24
    • 2012-11-20
    • 2011-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多