【问题标题】:Sort an array based on a specific column根据特定列对数组进行排序
【发布时间】:2014-03-26 14:49:28
【问题描述】:

我有一个输出数据的数组,如下所示:

 [STU-CZC0226PVC] => Array
    (
        [ComputerName] => STU-CZC0226PVC
        [time_in_days] => 13
        [room] => 1N10
    )

[STU-FMDXZDHJF-M] => Array
    (
        [ComputerName] => STU-FMDXZDHJF-M
        [time_in_days] => 13
        [room] => 2R022
    )

[STU-CZC03184CM] => Array
    (
        [ComputerName] => STU-CZC03184CM
        [time_in_days] => 13
        [room] => 2Q11
    )

[STU-CZC0226PTM] => Array
    (
        [ComputerName] => STU-CZC0226PTM
        [time_in_days] => 13
        [room] => 1N10
    )

[STU-CZC12632SN] => Array
    (
        [ComputerName] => STU-CZC12632SN
        [time_in_days] => 13
        [room] => 1N75

我想对数组进行排序,以便将具有相同房间号的记录一起列出,但不知道该怎么做。我认为它可能使用 usort(),但我不知道如何实现它,并且想知道是否有人可以提供帮助?

谢谢

【问题讨论】:

标签: php arrays sorting


【解决方案1】:

PHP >= 5.5.0

array_multisort(array_column($array, 'room', 'ComputerName'), SORT_DESC, $array);

PHP

foreach($array as $key => $val) {
    $rooms[$key] = $val['room'];
}
array_multisort($rooms, SORT_DESC, $array);

【讨论】:

    【解决方案2】:

    您可以将uasortstrcmp 结合使用:

    uasort($array, function ($a, $b) {
        return strcmp($a['room'], $b['room']);
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多