【问题标题】:sort array value in descending order in php [closed]在php中按降序对数组值进行排序[关闭]
【发布时间】:2013-10-31 11:23:17
【问题描述】:

我的数组是这种格式

Array
(
    [0] => 1,3
    [1] => 2,0
    [2] => 5,2
    [3] => 28,1
    [4] => 30,2
    [5] => 33,0
    [6] => 36,0
    [7] => 38,0
    [8] => 39,0
    [9] => 40,0
    [10] => 42,2
    [11] => 45,6
    [12] => 56,1
    [13] => 58,1
    [14] => 68,0
    [15] => 70,0
    [16] => 71,0
    [17] => 75,0
    [18] => 76,0
    [19] => 77,0
    [20] => 78,0
    [21] => 83,1
    [22] => 86,0
    [23] => 87,2
    [24] => 88,0
    [25] => 89,0
    [26] => 91,0
)

我想对数组进行降序排序,例如:数组 [10] =>45,6 中的值。想要根据第二个值排序,即这个数组中的 6

【问题讨论】:

标签: php arrays sorting


【解决方案1】:

您可以在排序时使用用户定义的函数。这将完成您需要做的事情。

function cmp($a, $b)
{
    $aa = explode(',', $a)[1];
    $bb = explode(',', $b)[1];
    if ($aa == $bb) {
        return 0;
    }
    return ($aa > $bb) ? -1 : 1;
}

usort($array, 'cmp');

【讨论】:

  • 哇,快速编写自定义函数并发布。干得好!
  • Aaaah - this 是我投反对票的原因。我很难理解 OP,但您似乎完全正确。点赞!
  • 你甚至可能有机会在这里逆转 :)
【解决方案2】:

usort是你的朋友:

usort($array, function($a, $b){

  return explode(',', $b)[1] - explode(',', $a)[1];

});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-16
    • 1970-01-01
    相关资源
    最近更新 更多