【问题标题】:Create a dynamic multiple associative array based on user inputs根据用户输入创建动态多关联数组
【发布时间】:2019-11-17 13:10:08
【问题描述】:

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

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

【问题讨论】:

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


    【解决方案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');
    

    【讨论】:

    • 现在我明白这就是为什么我得到数组的最后一个结果是星期三的原因。我会尝试另一种方法,一旦我能得到答案,我会尽快发布。谢谢!
    猜你喜欢
    • 2013-05-16
    • 1970-01-01
    • 2015-08-14
    • 2015-02-11
    • 1970-01-01
    • 2021-06-21
    • 1970-01-01
    • 1970-01-01
    • 2014-10-22
    相关资源
    最近更新 更多