Php 将日期列表排序为唯一的年/月/日数组
我已经为此挣扎了一段时间,所以我决定寻求帮助 我需要转换如下日期列表:Php 将日期列表排序为唯一的年/月/日数组,php,wordpress,sorting,date,datetime,Php,Wordpress,Sorting,Date,Datetime,我已经为此挣扎了一段时间,所以我决定寻求帮助 我需要转换如下日期列表: 2019-09-17, 2019-09-16, 2018-08-15, 2017-08-14 $dates = ['2019-09-17', '2019-09-16', '2018-08-15', '2017-08-14']; $result = []; foreach($dates as $date) { $dateParts = explode('-', $date); $result[$dateP
2019-09-17,
2019-09-16,
2018-08-15,
2017-08-14
$dates = ['2019-09-17', '2019-09-16', '2018-08-15', '2017-08-14'];
$result = [];
foreach($dates as $date) {
$dateParts = explode('-', $date);
$result[$dateParts[0]][$dateParts[1]][] = $dateParts[2];
}
foreach($result as &$e){
ksort($e);
foreach($e as &$t){
asort($t);
}
}
ksort($result);
并将其输出为唯一年/月/日的嵌套列表:
- 2019年
- 09
- 十七,
- 十六,
- 09
- 2018年
- 08
- 十五
- 08
- 2017年
- 08
- 十四,
- 08
你们能提供的任何帮助都会很好。谢谢 您可以使用
分解。大概是这样的:
2019-09-17,
2019-09-16,
2018-08-15,
2017-08-14
$dates = ['2019-09-17', '2019-09-16', '2018-08-15', '2017-08-14'];
$result = [];
foreach($dates as $date) {
$dateParts = explode('-', $date);
$result[$dateParts[0]][$dateParts[1]][] = $dateParts[2];
}
foreach($result as &$e){
ksort($e);
foreach($e as &$t){
asort($t);
}
}
ksort($result);
将产生
array(3) {
[2019]=>
array(1) {
["09"]=>
array(2) {
[0]=>
string(2) "17"
[1]=>
string(2) "16"
}
}
[2018]=>
array(1) {
["08"]=>
array(1) {
[0]=>
string(2) "15"
}
}
[2017]=>
array(1) {
["08"]=>
array(1) {
[0]=>
string(2) "14"
}
}
}
如果要排序,可以按如下方式进行排序:
2019-09-17,
2019-09-16,
2018-08-15,
2017-08-14
$dates = ['2019-09-17', '2019-09-16', '2018-08-15', '2017-08-14'];
$result = [];
foreach($dates as $date) {
$dateParts = explode('-', $date);
$result[$dateParts[0]][$dateParts[1]][] = $dateParts[2];
}
foreach($result as &$e){
ksort($e);
foreach($e as &$t){
asort($t);
}
}
ksort($result);
ksort
(升序)或krsort
(降序)将按键排序,sort
(升序)或rsort
(降序)将按值排序 如果要对输出进行排序,应在迭代数据之前只调用一次sort()
。为了唯一性,$result[$dateParts[0][$dateParts[1][$dateParts[2]]=$dateParts[2]代码>