Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 按日期和时间对集合排序_Arrays_Laravel_Sorting_Object - Fatal编程技术网

Arrays 按日期和时间对集合排序

Arrays 按日期和时间对集合排序,arrays,laravel,sorting,object,Arrays,Laravel,Sorting,Object,我有一个laravel系列,外观如下: $data::where('name','xyz')->get(); //Returns {"id":"1" , "date":"11.11.2011"...} {"id":"2","date":"12.11.2011"...} 我现在想要的是:按日期和时间对这些条目进行排序 因此,每个日期都有多个条目。 因此,我考虑将每个具有相同日期的条目拆分为一个数组,对它们进行排序,然后合并它们。 但我根本无法让它工作。我现在可以在这里发布一些代码,但这完全

我有一个laravel系列,外观如下:

$data::where('name','xyz')->get();
//Returns {"id":"1" , "date":"11.11.2011"...}
{"id":"2","date":"12.11.2011"...}
我现在想要的是:按日期和时间对这些条目进行排序 因此,每个日期都有多个条目。 因此,我考虑将每个具有相同日期的条目拆分为一个数组,对它们进行排序,然后合并它们。 但我根本无法让它工作。我现在可以在这里发布一些代码,但这完全是错误的,我相信这会把你的思维引向错误的方向。 问题是,条目是对象,我在比较时遇到问题。 感谢您的帮助

编辑:

感谢@Rafael Renan Pacheco,我现在所做的基本上是:

$sorted = $data->sortBy(function ($product, $key) {
        return $product->date;
    });

    echo '<pre>';
    foreach($sorted as $sort) {
        var_dump($sort->date);
    }
    echo '</pre>';
所以这很好。但是我如何按第二个键排序,在我的例子中是“deptime”,它返回时分秒? 因此,第一次按日期订购,已完成。现在,在不重新安排日期的情况下(同一天除外),按时间订购这一款。
我的意思是,我也可以更新我的表格,这样我就有了2019-11-09 17:24:00的日期。有什么想法吗?

看看这个示例,它允许回调来确定顺序:

$sorted=$collection->sortBy(函数($product,$key){
退货数量($product['colors']);
});

在您的情况下,您将比较每一行的日期和时间,从而生成一个新的排序集合。

从数组中生成一些记录并显示预期的时间result@Coderz9没有提到时间。“date”属性是timestamp吗?我想我让它工作了,deptime是它自己字段中的时间。我现在明白了:$sorted=Data::where('pic','HST')->或where('pic','BAL')->orderBy('date','asc')->orderBy('deptime','asc')->get();它返回了正确的结果,我担心即使它还没有发生,第二个orderby也会覆盖第一个。您认为如何?转储此请求的sql以确保“date asc”位于“deptime asc”之前。在SQL中,第一个order by优先于第二个order by,依此类推。如果“日期asc”排在第一位,那么它应该优先于“deptime asc”。
string(10) "2019-11-08"
string(10) "2019-11-08"
string(10) "2019-11-08"
string(10) "2019-11-09"