简体   繁体   English

在 PHP 中对数组的数组进行排序

[英]Sorting an array of array in PHP

Request your help on sorting an array of array in PHP as below, tried all these function ksort, usort, arsort, krsort nothing seem to be working, any help would be much appreciated.请求您帮助对 PHP 中的数组进行排序,如下所示,尝试了所有这些函数 ksort、usort、arsort、krsort 似乎都没有用,任何帮助将不胜感激。

Original Array原阵

Array
(
    [serv1-DB] => Array
        (
            [2019-11-22] => 0
            [2019-11-23] => 0
            [2019-11-24] => 0
            [2019-11-25] => 1
            [2019-11-26] => 3
            [2019-11-27] => 3
            [2019-11-28] => 3
            [2019-11-29] => 3
        )

    [ser2-DB] => Array
        (
            [2019-11-25] => 0
            [2019-11-24] => 0
            [2019-11-22] => 0
            [2019-11-23] => 0
            [2019-11-26] => 3
            [2019-11-27] => 3
            [2019-11-28] => 3
            [2019-11-29] => 3
        )

Output Required需要输出

Array
(
    [serv1-DB] => Array
        (
            [2019-11-29] => 3
            [2019-11-28] => 3
            [2019-11-27] => 3
            [2019-11-26] => 3
            [2019-11-25] => 1
            [2019-11-24] => 0
            [2019-11-23] => 0
            [2019-11-22] => 0

        )

    [ser2-DB] => Array
        (
            [2019-11-29] => 3
            [2019-11-28] => 3
            [2019-11-27] => 3
            [2019-11-26] => 3
            [2019-11-25] => 0
            [2019-11-24] => 0
            [2019-11-23] => 0
            [2019-11-22] => 0

        )

You want to sort the sub arrays, so you need to loop over each of them (in write mode) and sort the keys in reverse order using krsort :您想要对子数组进行排序,因此您需要遍历每个子数组(在写入模式下)并使用krsort以相反的顺序对键进行排序:

foreach ($array as &$subArray) {
  krsort($subArray);
}

Demo: https://3v4l.org/g8pBu演示: https ://3v4l.org/g8pBu

You have to sort reversely on the arrays like this:您必须像这样对数组进行反向排序:

// The arrays
$arrays = array(
    "serv1-DB" => array(
        "2019-11-22" => 0,
        "2019-11-23" => 0,
        "2019-11-24" => 0,
        "2019-11-25" => 1,
        "2019-11-26" => 3,
        "2019-11-27" => 3,
        "2019-11-28" => 3,
        "2019-11-29" => 3
    ),
    "ser2-DB" => array(
        "2019-11-25" => 0,
        "2019-11-24" => 0,
        "2019-11-22" => 0,
        "2019-11-23" => 0,
        "2019-11-26" => 3,
        "2019-11-27" => 3,
        "2019-11-28" => 3,
        "2019-11-29" => 3
    )
);

// The sorting part
foreach($arrays AS $k => $array) {
    krsort($array);
    $arrays[$k] = $array;
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM