首页 > 解决方案 > 如何对包含laravel中的集合的数组进行排序?

问题描述

[
    {
        "clubName": "FC Nightmare",
        "win": 0,
        "played": 1,
        "draw": 0,
        "lose": 1,
        "gs": 1,
        "ga": 2,
        "gd": -1,
        "points": 0
    },
    {
        "clubName": "Manchester City",
        "win": 1,
        "played": 1,
        "draw": 0,
        "lose": 0,
        "gs": 3,
        "ga": 2,
        "gd": 1,
        "points": 3
    },
    {
        "clubName": "Inter Milan",
        "win": 0,
        "played": 1,
        "draw": 0,
        "lose": 1,
        "gs": 2,
        "ga": 3,
        "gd": -1,
        "points": 0
    },
    {
        "clubName": "AC Milan",
        "win": 1,
        "played": 1,
        "draw": 0,
        "lose": 0,
        "gs": 2,
        "ga": 1,
        "gd": 1,
        "points": 3
    }
]

我有这个数组。我想按点对这个数组进行排序。如何在 laravel 中做到这一点?

我试过这个:

array_multisort(array_column($point_table,'points'),$point_table);

但它不起作用..

标签: phplaravel

解决方案


如果您使用标签建议的 Laravel,则可以使用集合来操作这样的数组。例如:

$array = collect($array)->sortBy('count')->reverse()->toArray();

或者

使用 array_multisort()

$array = array(   
   46 => 
      array (
       'name' => 'HSR Layout',
       'url' => 'hsr-layout',
       'count' => 2,
      ),

   37 => 
      array (
       'name' => 'Electronic City',
       'url' => 'electronic-city',
       'count' => 3,
      )
  );

$price = array();
foreach ($array as $key => $row)
{
    $count[$key] = $row['count'];
}
array_multisort($count, SORT_DESC, $array);

print_r($array);    

推荐阅读