我看过questions with similar titles
并找不到我的问题的答案。我也无法弄清楚如何在我的问题中实施asort
或usort
函数。
所以我有一个数组:
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
排序)
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'
}
}
答案 0 :(得分:4)
usort与PHP.net#4的例子使用闭包来排序多维数组:
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'));