簡體   English   中英

在 PHP 中對數組的數組進行排序

[英]Sorting an array of array in PHP

請求您幫助對 PHP 中的數組進行排序,如下所示,嘗試了所有這些函數 ksort、usort、arsort、krsort 似乎都沒有用,任何幫助將不勝感激。

原陣

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
        )

需要輸出

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

        )

您想要對子數組進行排序,因此您需要遍歷每個子數組(在寫入模式下)並使用krsort以相反的順序對鍵進行排序:

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

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

您必須像這樣對數組進行反向排序:

// 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