我有这个多维数组,我想按'fecha'命令每个数组(我的意思是2017-02-20,然后是2017-02-21,然后是2017-02-22,最后是2017-02-23) 。我已经阅读了很多答案,但它们只适用于二维数组。我尝试过unsort和array_multisort,即使使用ksort bue我也无法获得所需的结果。
Array
(
[0.10] => Array
(
[0] => Array
(
[fecha] => 2017-02-21
[tarifa] => 743.80
[percent] => 0.10
)
[1] => Array
(
[fecha] => 2017-02-22
[tarifa] => 743.80
[percent] => 0.10
)
[2] => Array
(
[fecha] => 2017-02-20
[tarifa] => 743.80
[percent] => 0
)
[3] => Array
(
[fecha] => 2017-02-23
[tarifa] => 743.80
[percent] => 0
)
)
[0.15] => Array
(
[0] => Array
(
[fecha] => 2017-02-21
[tarifa] => 743.80
[percent] => 0.15
)
[1] => Array
(
[fecha] => 2017-02-22
[tarifa] => 743.80
[percent] => 0.15
)
[2] => Array
(
[fecha] => 2017-02-20
[tarifa] => 743.80
[percent] => 0
)
[3] => Array
(
[fecha] => 2017-02-23
[tarifa] => 743.80
[percent] => 0
)
)
)
答案 0 :(得分:2)
您可以usort
使用strtotime
按日期排序。
ASC按日期排序(fecha):
foreach ($yourArray as $key => $subarray) {
usort($subarray, function($a, $b) {
return strtotime($a['fecha']) - strtotime($b['fecha']);
});
$yourArray[$key] = $subarray;
}
print_r($yourArray);
按日期排序DESC(fecha):
foreach ($yourArray as $key => $subarray) {
usort($subarray, function($a, $b) {
return strtotime($b['fecha']) - strtotime($a['fecha']);
});
$yourArray[$key] = $subarray;
}
print_r($yourArray);
答案 1 :(得分:1)
尝试:
foreach ($yourArray as $key => &$subarray) {
usort($subarray, function($a, $b) {
return $a['fecha'] <= $b['fecha'];
});
}
print_r($yourArray); //now it's sorted