php - 基于数据库记录在laravel中创建带有子数组的数组
问题描述
我想显示如下内容:(将原始数组中的日期排序为新数组)
2021 年 1 月 1 日:5
2021 年 1 月 2 日:3
等等......我已经将信息存储在一个数组中,并按日期排序。我只是无法弄清楚如何自动将类似的日期行添加到该数组中的数组中。不仅如此,我还想同时回应它。我完全坚持这一点。请帮忙。顺便说一下,记录->日期是这样的格式:01.01.2021 15:00
@php
$records = DB::table('bookings')->get();
$records = $records->sortBy('date')->toArray();
$array = array();
@endphp
@foreach($records as $record)
somehting in here
@endforeach
在一些答案之后,我现在有了这个:但它仍然不起作用。错误:“未定义的数组键“2021-07-30 15:00””
<?php
$records = DB::table('bookings')->get()->sortBy('date')->toArray();
$array = array();
foreach($records as $record){
if(array_key_exists($array[$record->date], $array)) {
$array[$record->date] = $array[$record->date] +1;
}else{
$array[$record->date] = 1;
}
}
foreach($array as $value_key => $value_value){
echo $value_key . " : " . $value_value;
}
?>
经过一些快速调试后,我认为这段代码的问题在于它检查了一个不存在的数组,但它失败了。但是当我在 else 语句中创建数组时(注释掉一些东西),它就可以工作了。所以我仍然不知道如何实现该语句来检查它是否存在。
解决方案
@php
$records = DB::table('bookings')->get();
$records = $records->sortBy('date')->toArray();
$array = array();
@endphp
@foreach($records as $record)
if (array_key_exists($array[$record->date],$array))
{
$array[$record->date] = $array[$record->date] + 1;
}
else
{
$array[$record->date] = 1;
}
@endforeach
@foreach ($array as $value_key => $value_value)
{{$value_key}} {{$value_value}}
@endforeach
推荐阅读
- apache-spark - 在不平衡数据集的情况下进行连接优化
- javascript - 班级中的班级?
- angular - 在通过角度材料的连接函数返回之前在 Observable 数据中添加属性
- typescript - 未推断出扩展接口的通用类型
- java - Spring RestTemplate 动态 JSON 属性名称
- yaml - Azure Pipeline YAML 与向导
- javascript - 由于 broccoliBuilderError,Ember 构建失败
- objective-c - 如何在 CFPreferencesSetAppValue 中设置整数?
- c# - 使用 Bouncy Castle 使用 CAdES-BES 签署文件
- slack - 自动更改肤色