Массив_порядок сортировки по значению, ближайшему к сегодняшней дате

Есть ли способ использовать array_multisort с пользовательским заказом? Мне нужно, чтобы результаты отображались в порядке дат, причем первая дата является датой, ближайшей к сегодняшней, как вы можете видеть из кода под полем matchDate в виде строки, которую я позже преобразовываю в значение даты.

 foreach($matchLists as $matchList)
{

$fixtures[] = $matchList['matchDate'];

}

array_multisort($fixtures, SORT_DESC, $matchLists);$newlist = array();

foreach($matchLists as $key => $matchitem)

{
if(array_key_exists('matchDate', $matchitem))
{

$newlist[$matchitem['matchDate']][$key] = ($matchitem);

}}
foreach($newlist as $key => $value)
{
$fixtureDate = date('D j M Y ga', strtotime($key));
}

0

Решение

Да, посмотрите на один из моих предыдущий ответ на SO:

<?php
$events = array(
'event1' => array(
'event_name' => 'Title for Event 1',
'event_date' => '2017-11-1'
),
'event3' => array(
'event_name' => 'Title for Event 1',
'event_date' => '2017-10-13'
),
'event4' => array(
'event_name' => 'Title for Event 1',
'event_date' => '2017-11-10'
),
'event2' => array(
'event_name' => 'Title for Event 1',
'event_date' => '2017-10-22'
),
);

function date_compare($a, $b)
{
// note that the variables are calling for the date part of the array
// if you are using assoc array from mysql just change the value
// to your row name
$t1 = strtotime($a['event_date']);
$t2 = strtotime($b['event_date']);
return $t1 - $t2;
}
usort($events, 'date_compare');
print_r($events);

Здесь у вас есть массив с датой, вы создаете date_compare функция, а затем usort отсортировать массив по дате.

Надеюсь это поможет

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector