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

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

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

 如何把它变成:

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

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_ASC, $arr);
return $arr;
}

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

输出:

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

猜你喜欢

转载自www.cnblogs.com/chaoyong/p/8920005.html