如何通过PHP对日期数组进行排序?

亚历克斯·瓦伦苏埃拉

我正在使用array_push和array_unshift方法,但是在订购时,它结合了2021年的12-2020,这是一个示例。

        foreach ($lostOpportunities_ as $key => $value) {
            $existDate = array_search($value->fecha,$datesClosed);
            
            if ($existDate === false) {
                if (Carbon::parse($value->fecha)->format('Y') == '2020') {
                    array_unshift($datesClosed,$value);
                }else{
                    array_push($datesClosed,$value->fecha);
                }
            }
            $_lostOpportunitiesData[$value->fecha] = $value->total;
        }

Array
(
    [0] => 05-01-2021
    [1] => 06-01-2021
    [2] => 07-01-2021
    [3] => 11-01-2021
    [4] => 12-01-2021
    [5] => 13-01-2021
    [6] => 14-01-2021
    [7] => 15-01-2021
    [8] => 18-01-2021
    [9] => 19-01-2021
    [10] => 20-01-2021
    [11] => 21-01-2021
    [12] => 22-12-2020
    [13] => 23-12-2020
    [14] => 28-12-2020
    [15] => 29-12-2020
    [16] => 30-12-2020
    [17] => 08-01-2021
)

sort($datesClosed,SORT_STRING);

Array
(
    [0] => 05-01-2021
    [1] => 06-01-2021
    [2] => 07-01-2021
    [3] => 08-01-2021
    [4] => 11-01-2021
    [5] => 12-01-2021
    [6] => 13-01-2021
    [7] => 14-01-2021
    [8] => 15-01-2021
    [9] => 18-01-2021
    [10] => 19-01-2021
    [11] => 20-01-2021
    [12] => 21-01-2021
    [13] => 22-12-2020
    [14] => 23-12-2020
    [15] => 28-12-2020
    [16] => 29-12-2020
    [17] => 30-12-2020
)

如您所见,2020年12月的日期在末尾,但应该在01-2021年的开始之前。

马库斯·AO

可以usort对日期字符串数组使用此功能您可以将它们与strotime($a) <=> strtotime($b)array_reverse(explode('-', $a)) <=> ... $b在所有日期进行比较。但是,考虑到比较每个项目时要进行的笛卡尔(?)转换量,这种方法很快就会变成非常昂贵的操作,除非以某种方式缓存了这些转换。我不会在这里走这条路。

通常,最好在所有数据仍处于更容易比较的格式下对数据进行排序。我认为您不能只使用usortCarbon对象(无论如何,都没有上面的开销!),因此这是一种性能良好的简洁解决方案。

假设数组键对您没有特殊意义,则可以为键生成时间戳。然后,您可以取消所有取消移位/推送逻辑,只需执行以下操作:

$timestamp = Carbon::parse($value->fecha)->timestamp;
$times[$timestamp] = $value;

这将为您提供$times带有时间戳索引的日期字符串数组(此处为)。(使变量适应您的情况。)然后,将其与应用到结果数组一样琐碎按键对数组排序。您的日期字符串将按时间顺序排列。ksort($times)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

对日期数组进行排序

来自分类Dev

根据当前日期对日期数组进行排序

来自分类Dev

使用asort()对日期数组进行排序

来自分类Dev

如何在iOS中以升序对日期数组进行排序

来自分类Dev

如何在字符串数组php中对日期时间进行排序

来自分类Dev

如何在android中以每周为基础对日期数组列表中的条目进行计数

来自分类Dev

使用 BigQuery 对日期数组进行子查询

来自分类Dev

在不更改日期格式的情况下对日期数组进行排序(无前导0)?-Javascript

来自分类Dev

XSLT:如何对日期进行排序

来自分类Dev

如何使用数组中的 moment.js 按降序对日期进行排序

来自分类Dev

如何在Objective C中将日期与日期数组进行比较/排序

来自分类Dev

如何在PHP中的日期数组中从最接近的日期到最远的日期排序

来自分类Dev

对日期为JavaScript的字符串数组进行排序

来自分类Dev

使用asort()对日期进行排序的数组无法正常工作

来自分类Dev

Swift - 根据日期数组对不同的数组进行排序

来自分类Dev

如何使用 JavaScript 对带有数据的日期数组进行排序?

来自分类Dev

MongoDb:如何对日期字段进行汇总,分组和排序?

来自分类Dev

如何在jQuery中对日期进行排序

来自分类Dev

如何使用比较器按降序对日期进行排序

来自分类Dev

您如何在字典中对日期进行排序?

来自分类Dev

如何使用AM | PM对日期文件进行排序

来自分类Dev

如何使用AM | PM对日期文件进行排序

来自分类Dev

如何在mysql中对日期进行排序

来自分类Dev

按升序对日期进行排序

来自分类Dev

在AngularJS前端中对日期进行排序

来自分类Dev

无法使用结构对日期进行排序

来自分类Dev

排序日期数组排序升序迅速

来自分类Dev

如何对日期数据执行指数拟合?

来自分类Dev

如何通过传递日期数组来操纵jquery datepicker?

Related 相关文章

  1. 1

    对日期数组进行排序

  2. 2

    根据当前日期对日期数组进行排序

  3. 3

    使用asort()对日期数组进行排序

  4. 4

    如何在iOS中以升序对日期数组进行排序

  5. 5

    如何在字符串数组php中对日期时间进行排序

  6. 6

    如何在android中以每周为基础对日期数组列表中的条目进行计数

  7. 7

    使用 BigQuery 对日期数组进行子查询

  8. 8

    在不更改日期格式的情况下对日期数组进行排序(无前导0)?-Javascript

  9. 9

    XSLT:如何对日期进行排序

  10. 10

    如何使用数组中的 moment.js 按降序对日期进行排序

  11. 11

    如何在Objective C中将日期与日期数组进行比较/排序

  12. 12

    如何在PHP中的日期数组中从最接近的日期到最远的日期排序

  13. 13

    对日期为JavaScript的字符串数组进行排序

  14. 14

    使用asort()对日期进行排序的数组无法正常工作

  15. 15

    Swift - 根据日期数组对不同的数组进行排序

  16. 16

    如何使用 JavaScript 对带有数据的日期数组进行排序?

  17. 17

    MongoDb:如何对日期字段进行汇总,分组和排序?

  18. 18

    如何在jQuery中对日期进行排序

  19. 19

    如何使用比较器按降序对日期进行排序

  20. 20

    您如何在字典中对日期进行排序?

  21. 21

    如何使用AM | PM对日期文件进行排序

  22. 22

    如何使用AM | PM对日期文件进行排序

  23. 23

    如何在mysql中对日期进行排序

  24. 24

    按升序对日期进行排序

  25. 25

    在AngularJS前端中对日期进行排序

  26. 26

    无法使用结构对日期进行排序

  27. 27

    排序日期数组排序升序迅速

  28. 28

    如何对日期数据执行指数拟合?

  29. 29

    如何通过传递日期数组来操纵jquery datepicker?

热门标签

归档