Как отсортировать значения массива в Laravel - PullRequest
2 голосов
/ 04 июня 2019

У меня есть проект Laravel, и у меня есть массив, как показано ниже.

array:12 [▼
  0 => "آبان 1398"
  1 => "آذر 1398"
  2 => "اردیبهشت 1398"
  3 => "اسفند 1397"
  4 => "بهمن 1397"
  5 => "تیر 1398"
  6 => "خرداد 1398"
  7 => "دی 1397"
  8 => "شهریور 1398"
  9 => "فروردین 1398"
  10 => "مرداد 1398"
  11 => "مهر 1398"
]

Как я могу отсортировать его по значениям? Например, все записи с 1398 после этого 1397.

Ответы [ 2 ]

1 голос
/ 04 июня 2019

В Laravel вы можете использовать sortByDesc().

Пример:

$collection = collect([5, 3, 1, 2, 4]);

$sorted = $collection->sortByDesc();

dd($sorted->values()->all()); //print sorted values.

1 голос
/ 04 июня 2019

Я не мог понять, как отсортировать его с помощью любого из методов, основанных на локали, которые я нашел, но я заставил его работать, просто извлекая цифры в usort. Возможно, есть лучший способ, но, похоже, он работает хорошо.

usort($array, function($a, $b) {
    return preg_replace('/\D/', '', $b) <=> preg_replace('/\D/', '', $a);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...