/** |
* 模拟数据库排序 |
* |
* @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 ; |
} |