php多维数组的指定单个字段排序

多维数组如何根据指定键值?比如现在有数组结构如下:

$data = array(
0 => array('name' => '1','avgScore'=>90,'subject' => 'math'),
1 => array('name' => '2','avgScore'=>60,'subject' => 'math'),
2 => array('name' => '3','avgScore'=>88,'subject' => 'math' ),
);

 如何把它变成:

$data = array(
0 => array('name' => '1','avgScore'=>90,'subject' => 'math'),
1 => array('name' => '3','avgScore'=>88,'subject' => 'math'),
2 => array('name' => '2','avgScore'=>60,'subject' => 'math'),
);

1、array_multisort()

 可使用 array_multisort()函数排序,

function mySort($arr = array(),$sort_by){
foreach($arr as $k => $v){
$avgScore[$k] = $v[$sort_by];
}
array_multisort($avgScore, SORT_DESC, $arr);
return $arr;
}

echo "<pre>";
print_r(mySort($data),'avgScore');

输出:

$data = array(
0 => array('name' => '1','avgScore'=>90,'subject' => 'math'),
1 => array('name' => '3','avgScore'=>88,'subject' => 'math'),
2 => array('name' => '2','avgScore'=>60,'subject' => 'math'),
);
记录点滴,迭代精进,追求新生。Email: 942298768@qq.com
原文地址:https://www.cnblogs.com/chaoyong/p/8920005.html