我必须按键对多维数组进行排序,并且我需要一些建议如何做到这一点。
我尝试使用
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_multisort 来实现您的要求。
$keys = [];
foreach($arr as $k => $item){
$keys[] = key($item);
}
array_multisort($keys, SORT_NATURAL, $arr);
array_multisort — 对多个或多维数组进行排序
SORT_NATURAL - 使用“自然排序”(如 natsort())将项目作为字符串进行比较。
我这样修改了我的数组:
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");
它对我有用:)但现在我必须再次修改我的数组才能返回第一眼。