@Shimpanze

Как отсортировать многомерный массив?

Как отсортировать такой многомерный массив, по полю "date"? В порядке убывания. Первое это число, второе - месяц.

Найденное в сети решение:

$field_name = "date";
usort( $array, function( $a, $b ) use ( &$field_name ) {
  return strtotime( $a[$field_name] ) - strtotime( $b[$field_name] );
});


...не работает.

array (
  0 =>
  array (
    'date' => '0802',
    'title' => 'Петя',
  ),
  1 =>
  array (
    'date' => '0105',
    'title' => 'Вася',
  ),
  2 =>
  array (
    'date' => '0404',
    'title' => 'Миша',
  ),
  3 =>
  array (
    'date' => '0801',
    'title' => 'Гриша',
  ),
)
  • Вопрос задан
  • 68 просмотров
Решения вопроса 1
1210mk2
@1210mk2
ТС, ваше решение тоже работает
пык
просто сорт наоборот.
судя по вашим форматам дат можно через int.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
0xD34F
@0xD34F
usort($array, function($a, $b) {
  $a = str_split($a['date'], 2);
  $b = str_split($b['date'], 2);
  $monthDiff = $b[1] - $a[1];
  return $monthDiff ? $monthDiff : ($b[0] - $a[0]);
});
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
от 55 000 до 80 000 руб.
WACDAQ Москва
от 120 000 руб.
от 90 000 до 200 000 руб.
22 авг. 2019, в 07:30
10000 руб./за проект
22 авг. 2019, в 02:23
60000 руб./за проект
22 авг. 2019, в 02:15
5000 руб./за проект