首页 > 解决方案 > 基于数据库记录在laravel中创建带有子数组的数组

问题描述

我想显示如下内容:(将原始数组中的日期排序为新数组)

  1. 2021 年 1 月 1 日:5

  2. 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 语句中创建数组时(注释掉一些东西),它就可以工作了。所以我仍然不知道如何实现该语句来检查它是否存在。

标签: phpdatabaselaravel

解决方案


@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

推荐阅读