有时候为了达到一定目的,需要对二维数组进行排序,这里我分享一个实现的方法。
/**
* 对二维数组进行排序
* 模拟 数据表记录按字段排序
*
* @param array $array 要排序的数组
* @param string $orderKey 排序关键字/字段
* @param string $orderType 排序方式,'asc':升序,'desc':降序
* @param string $orderValueType 排序字段值类型,'number':数字,'string':字符串
*/
public function listOrder($array, $orderKey, $orderType = 'asc', $orderValueType = 'string')
{
if (is_array($array)) {
$orderArr = array();
foreach ($array as $val) {
$orderArr[] = $val[$orderKey];
}
$orderType = ($orderType == 'asc') ? SORT_ASC : SORT_DESC;
$orderValueType = ($orderValueType == 'string') ? SORT_STRING : SORT_NUMERIC;
array_multisort($orderArr, $orderType, $orderValueType, $array);
return $array;
}
}
另外:array_multisort 函数功能也很强大,详细可以参看PHP手册
登录后可发表评论