根据用户输入创建动态多重关联数组

Create a dynamic multiple associative array based on user inputs

我正在根据用户输入动态创建一个关联数组,因为我要将它用于我的查询生成器(批量插入)。我创建了一个日期数组,我想将其值用作空数组的键值对。

我试过了$array['dates'] = $date->format('D');

public function store(Request $request)
{
    $from = $request->input('from');
    $to = $request->input('to');
    $name = $request->input('name');
    $days= [];
    $startDate = Carbon::parse($from); //parse date to be iterated below
    $endDate = Carbon::parse($to); // same as above

    // return $startDate->format('D');
    for ($date = $startDate; $date->lte($endDate); $date->addDay()) {
        $days['schedule_date'] = $date->format('D');
    }

  dd($days);

}

但我得到的结果只有 1。

Array ( [schedule_date] => Wed )

我期待 31 个结果

问题是你总是分配给同一个数组元素:

$days['schedule_date'] = $date->format('D');

你有一个数组 $days,其中有一个键 schedule_date;您只是在每次迭代时替换此值。

根据你想要的输出形状,你可以像这样推送到数组:

$days[] = $date->format('D');

这将产生一个简单的数组(不是关联数组),例如:

['Mon', 'Tue', 'Wed']

如果您需要 schedule_date 键本身是一个数组,请这样做:

$days['schedule_date'][] = $date->format('D');