PHP - How to sort arrays inside an array by individual keys
0
我看了看questions with similar titles,没有找到我问题的答案。我也不太明白如何在我的问题中实现asort或usort函数。
所以我有一个数组:
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'
}
} |
有没有办法通过name或price或grade来订购这个数组,以便输出如下:(由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')); |