首页 > 解决方案 > 如何按日期对数组与其他数组进行排序并限制laravel和carbon

问题描述

我有这个数组和其他 16 个数组

array:16 [▼
  0 => array:6 [▼
    "id" => 1867
    "meta_date" => Illuminate\Support\Carbon @1564536945 {#4600 ▼
      date: 2019-07-31 01:35:45.0 UTC (+00:00)
        }
         "title" => ""
        "summary" => """
  1 => array:6 [▼
    "id" => 1868
    "meta_date" => Illuminate\Support\Carbon @1524215895 {#4465 ▼
      date: 2018-04-20 09:18:15.0 UTC (+00:00)
    }
    "meta_type" => ""
    "title" => ""
    "summary" => """

等等...

在此处输入图像描述

我想按每个“子”数组中包含的“meta_date”字段中指定的日期对主数组进行排序,排序可以是$sort= "asc"$sort= "desc"

我想对主数组进行动态限制,例如,如果$limit=10采用按所选日期排序的前 10 个数组

目前,我正在使用 PHP 7.3 和 laravel 8

标签: phparrayslaravel

解决方案


Laravel 的系列包含你需要的一切:

collect($arr)->{$sort === 'desc' ? 'sortByDesc' : 'sortBy'}('meta_date')->take($limit)->values()->all();

推荐阅读