簡體   English   中英

PHP-如何通過鍵對多維數組排序?

[英]PHP - How to sort multidimensional array by Key?

我必須按鍵對多維數組進行排序,我需要一些推薦方法。

我嘗試使用ksort()和其他php內置函數,但沒有一個對我有幫助。

這是我的數組,我想按鍵排序:

Array
(
[0] => Array
    (
        [20190529] => Array
            (
                [30] => Array
                    (
                        [17] => Array
                            (
                                [3846] => 0
                            )

                    )

            )

    )

[1] => Array
    (
        [20190516] => Array
            (
                [31] => Array
                    (
                        [17] => Array
                            (
                                [512] => 0
                            )

                    )

            )

    )

在這種情況下,密鑰為2019052920190516

我這樣修改數組:

Array
(
[0] => Array
    (
        [DATE] => 20190503
        [DEAL] => 30
        [IBLOCK] => 18
        [AMOUNT] => 2500
        [PAYED] => 0
    )

[1] => Array
    (
        [DATE] => 20190516
        [DEAL] => 31
        [IBLOCK] => 17
        [AMOUNT] => 512
        [PAYED] => 0
    )
)

然后我用usort()

function cmp($a, $b) {
    return $a['DATE'] - $b['DATE'];
}

usort($mydata, "cmp");

它確實對我有用:),但是現在我不得不再次修改數組以返回第一眼。

工作演示

您可以使用array_multisort來滿足您的要求。

$keys = [];
foreach($arr as $k => $item){
    $keys[] = key($item);
}
array_multisort($keys, SORT_NATURAL, $arr);

array_multisort —對多維或多維數組進行排序

SORT_NATURAL-使用像natsort()這樣的“自然排序”將項目作為字符串進行比較。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM