我必须按键对多维数组进行排序,我需要一些推荐方法。
我尝试使用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
答案 0 :(得分:3)
您可以使用array_multisort来满足您的要求。
$keys = [];
foreach($arr as $k => $item){
$keys[] = key($item);
}
array_multisort($keys, SORT_NATURAL, $arr);
array_multisort —对多维或多维数组进行排序
SORT_NATURAL-使用“ natsort()”之类的“自然顺序”将项目作为字符串进行比较。
答案 1 :(得分:2)
我这样修改了我的数组:
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");
它确实对我有用:),但是现在我不得不再次修改数组以返回第一眼。