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

时间:2019-07-08 02:45:09

标签: php arrays laravel associative-array query-builder

我将根据用户输入动态创建关联数组,因为我将其用于查询构建器(批量插入)。我创建了一个日期数组,并希望将其值用作空数组的键值对。

我确实尝试过$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个结果

1 个答案:

答案 0 :(得分:1)

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

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

您有一个数组$days,其键为schedule_date;您只需在每次迭代中替换该值即可。

根据您想要输出形状的方式,可以像这样将数组推入数组:

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

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

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

如果您需要将schedule_date键本身作为数组,请执行以下操作:

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