[英]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
)
)
)
)
)
在這種情況下,密鑰為20190529
和20190516
我這樣修改數組:
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.