关于PHP:PHP – 如何通过单个键对数组内的数组进行排序

PHP - How to sort arrays inside an array by individual keys

本问题已经有最佳答案,请猛点这里访问。

0

我看了看questions with similar titles,没有找到我问题的答案。我也不太明白如何在我的问题中实现asortusort函数。

所以我有一个数组:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
array
{
   array
   {
      'name' => 'name1',
      'price' => '100',
      'grade' => '4.4'
   },
   array
   {
      'name' => 'name16',
      'price' => '12',
      'grade' => '1.2'
   },
   array
   {
      'name' => 'name3',
      'price' => '143',
      'grade' => '2.4'
   }
}

有没有办法通过namepricegrade来订购这个数组,以便输出如下:(由name订购)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
array
{
   array
   {
      'name' => 'name1',
      'price' => '100',
      'grade' => '4.4'
   },
   array
   {
      'name' => 'name3',
      'price' => '143',
      'grade' => '2.4'
   },
   array
   {
      'name' => 'name16',
      'price' => '12',
      'grade' => '1.2'
   }
}

usort with php.net第4个示例使用闭包对多维数组排序:

1
2
3
4
5
6
7
8
9
function build_sorter($key) {
    return function ($a, $b) use ($key) {
        return strnatcmp($a[$key], $b[$key]);
    };
}

usort($array, build_sorter('name'));
usort($array, build_sorter('price'));
usort($array, build_sorter('grade'));