Создать динамический множественный ассоциативный массив на основе пользовательских данных - PullRequest
1 голос
/ 08 июля 2019

Я динамически создаю ассоциативный массив на основе пользовательских данных, потому что я собираюсь использовать его для моего построителя запросов (массовая вставка).Я создал массив дат и хочу использовать его значения в качестве пары ключ-значение для пустого массива.

Я попытался $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 Ответ

1 голос
/ 08 июля 2019

Проблема в том, что вы всегда присваиваете один и тот же элемент массива:

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

у вас есть массив $days с ключом schedule_date; вы просто заменяете это значение при каждой итерации.

В зависимости от того, как вам нужна форма вашего вывода, вы можете просто выдвинуть массив следующим образом:

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

Это даст простой массив (не ассоциативный массив), такой как:

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

Если вам нужен сам ключ schedule_date для массива, сделайте так:

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