如何在Laravel中对数组的值进行排序

时间:2019-06-03 22:05:23

标签: php html css arrays laravel

我有一个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"
]

如何按值对它进行排序?例如,在1397之后的所有1398记录。

2 个答案:

答案 0 :(得分:1)

我不知道如何使用找到的任何基于语言环境的方法对它进行排序,但是我只通过提取usort中的数字就可以使它起作用。也许有更好的方法,但这似乎行得通。

usort($array, function($a, $b) {
    return preg_replace('/\D/', '', $b) <=> preg_replace('/\D/', '', $a);
});

答案 1 :(得分:1)

以Laravel的方式,您可以使用sortByDesc()

示例:

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

$sorted = $collection->sortByDesc();

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