Как объединить массивы дат?

98
20 ноября 2021, 21:30

Всем привет, подскажите пожалуйста. У меня есть такой метод который должен объединять массивы дат в объекте, но я не пойму что туда необходимо дописать... в метод add прилетают обычные массивы дат

public function add(Days $days): Days 
    { 
 
         
    }

Метод который формирует массивы дат public function getVacationDates(User $user): Days { $allVacationDays = new Days([]);

    foreach ($user->getVacation() as $vacation) {
        $vacationDays = Days::fromRange($vacation->getStartVacation(), $vacation->getEndVacation());
        $allVacationDays->add($vacationDays);
    }
    return $allVacationDays;
}

Класс

class Days 
{ 
    private $rangeDays; 
 
    public function __construct(array $rangeDays) 
    { 
        $this->rangeDays = $rangeDays; 
    } 
 
    public function remove(array $arr): Days 
    { 
 
        return new Days(array_diff($this->rangeDays, $arr)); 
    } 
 
    public function add(Days $days): Days 
    { 
 
        
    } 
 
    public static function fromRange($startDate, $endDate) 
    { 
        $vacationsDate = []; 
 
        $start = new Carbon($startDate->format('Y-m-d')); 
        $end = new Carbon($endDate->format('Y-m-d')); 
 
        while ($start->lte($end)) { 
            $vacationsDate[] = $start->toDateString(); 
            $start->addDay(); 
        } 
 
        return new self($vacationsDate); 
    } 
 
 
}

Answer 1

Не пойму: метод add() описан:

public function add(Days $days): Days
{
    return new Days(array_merge($this->rangeDays, $days));
}

в нем к массив $days дополняется датой из $this->rangeDays. Если Вам необходимо дополнить массив $days другим массивом - просто замените $this->rangeDays на тот другой массив.

Answer 2

Тогда смею предположить, что в метод необходимо передать именно массив дат:

public function add(array $new_arr_days): void
{
    $this->rangeDays = array_merge($this->rangeDays, $new_arr_days);
}
READ ALSO
Не выполняется скрипт, если запрос пустой

Не выполняется скрипт, если запрос пустой

Есть скрипт php, который выбирает данные из БД и с помощью аякса подгружает их на страницу:

87
Найти последние слова в тексте php

Найти последние слова в тексте php

Доброго времени сутокПодскажите - как найти в тексте с помощью PHP последние 4 слова? Текст может быть случайным, по этому я не могу просто написать...

179
strpos проверить свойство объекта на наличие в нем текста

strpos проверить свойство объекта на наличие в нем текста

Я пытаюсь проверить определенное свойство объекта на наличие в нем текста nobr В этом свойстве лежит html-код -теги и какой-либо текст

97