[php]代码库
/**
* 模拟数据库排序
*
* @param array $data 排序列表结构需同 mysql 查询出的二维数组, 如: array(array('int'=>1, 'dint'=>'5'), array('int'=>3, 'dint'=>9))
* @param array $sortFieldsArr 排序字段 如: array('int'=>'desc', 'dint'=>'asc')
* @return array
*/
function dbSort($data , $sortFieldsArr)
{
$evalStr = $afterEvalStr = '';
foreach($sortFieldsArr as $sortField=>$sortType)
{
$evalStr .= '$'.$sortField.'[$k] = "{$v[\''.$sortField.'\']}"; ';
$sortType = strtoupper($sortType) == 'DESC' ? SORT_DESC : SORT_ASC;
$afterEvalStr .= '$'.$sortField.', '.$sortType.', ';
}
foreach($data as $k=>$v)
{
eval($evalStr);
}
eval("array_multisort({$afterEvalStr}\$data);");
return $data;
}