Пытаясь отсортировать массив ниже по «концу» без использования функции usort, есть ли простой способ сделать это?
$feature_event = array(
array(
"title" => "Classic",
"date" => "October 28 - 30 2016",
"end" => strtotime("October 30, 2016")
),
array(
"title" => "Ski Weekend",
"date" => "February 5-8, 2017",
"end" => strtotime("February 8, 2017")
),
array(
"title" => "NBA Weekend",
"date" => "February 17-19, 2017",
"end" => strtotime("February 19, 2017")
),
array(
"title" => "Fiesta",
"date" => "May 26-28, 2017",
"end" => strtotime("May 28, 2017")
)
Я вывожу результат через цикл foreach, но хочу ограничиться тремя результатами.
<?php foreach( array_slice($feature_event, 0, 3) as $event): ?>
...
<?php endforeach; ?>
Небольшое пояснение: я пытаюсь отобразить изображения, связанные с событием. Каждое событие имеет определенную дату окончания. Как только дата окончания пройдет, отобразите следующее изображение в цикле... но я хочу, чтобы массив был отсортирован по дате окончания. Я понимаю, что функция usort поможет, но я не настолько продвинулся в кодировании. Есть ли простой способ выполнить сортировку по «концу» или мне нужно будет выполнить usort. Если мне нужен usort, мне все еще нужен forloop? Плз извините за мой глупый вопрос.
ОБНОВЛЕНИЕ
Это многосортное решение массива
array_multisort(array_column($feature_event, 'end'), $feature_event);
сортирует так, как мне нужно, но я хотел бы выводить данные на основе текущей даты... Кажется, я не могу создать условие, которое работает правильно...
в моем forloop у меня есть это условие:
<?php
date_default_timezone_set("America/Chicago");
$now = strtotime("now");
?>
<?php if($now <= $event["end"]) :?>
... code ...
<?php endif;?>
но он выводит только 2 события.... какие-нибудь идеи о том, что я делаю неправильно. Это if находится внутри foreachloop выше.