@Chloyka

Как удалить из массива все элементы до определенного?

Предположим мы имеем массив с датами содержащий неопределенное количество дат, прошлых и будущих, назовем его $date.
Массив $date сортирован по возрастанию дат.
Так же имеем сегодняшний день $today = date("d.m.Y");
Как удалить из массива $date все прошлые даты, оставив только сегодняшнее число и будущие числа?
  • Вопрос задан
  • 175 просмотров
Решения вопроса 1
Zoominger
@Zoominger
System Integrator
Циклом проходите весь массив до сегодняшнего числа и делаете для каждого элемента:
unset($array[$iterator]);

Или вообще вот так (переменные offset и length очевидны):
array_splice($array, $offset, $length);
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@DanKud
array_slice + array_search

$date = [
    '10.04.2019',
    '11.04.2019',
    '12.04.2019',
    '13.04.2019',
    '14.04.2019',
    '15.04.2019',
    '16.04.2019',
    '17.04.2019',
    '18.04.2019'
];

$today = date('d.m.Y');
$date = array_slice($date, array_search($today, $date));
print_r($date);

/*
Array
(
    [0] => 15.04.2019
    [1] => 16.04.2019
    [2] => 17.04.2019
    [3] => 18.04.2019
)
*/
Ответ написан
Комментировать
syamskoy
@syamskoy
$arr = ['a', 'b', 'c', 'd', 'e'];
$arr = array_splice($arr, array_search('c', $arr));
print_r($arr);

Result: Array ( [0] => c [1] => d [2] => e )

Пока писал уже ответили)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы