小白成长记之PHP二维数组的排序,在工作中往往遇到需要对二维数组进行排序,PHP本身提供的排序方法对二维数组来说不是很好(小白的自我感觉^V^),在一番资料查找下(东拼西凑)弄了一个目前经常使用的排序方法,使用至今还未遇到过问题,有需要可自行参考,不喜勿喷。
/**
* 二维数组排序
*
* @param array $array 要排序的数组
* @param string $field 要排序的字段
* @param string $order 排序类型(ASC、DESC)
*
* @return array
*/
function ArrayOrder($array, $field="create_time", $order = 'ASC') {
if (!$array || !$field) {
return $array;
}
$order = strtoupper($order);
if (!in_array($order, array('ASC', 'DESC'))) {
$order = 'DESC';
}
$sort = array(
'direction' => 'SORT_' . $order, //排序顺序标志 SORT_DESC 降序;SORT_ASC 升序
'field' => $field, //排序字段
);
$arrSort = array();
foreach ($array AS $uniqid => $row) {
foreach ($row AS $key => $value) {
$arrSort[$key][$uniqid] = $value;
}
}
if ($sort['direction']) {
array_multisort($arrSort[$sort['field']], constant($sort['direction']), $array);
}
return $array;
}