代码片段
// 获取计算值最大小的数据基于某字段排序
// $list 取出的结果数组
// $field 使用排序的字段
// $type 可选max/min
// $get_field 为空则返回最大(小)的数组。不为空,填入某字段获取指定字段的值。
function getCalcValueByField($list,$field,$type="max",$get_field=null){
$resList = $this->list_sort_by($list, $field);
if(!$resList){
return $get_field ? '' : [];
}
if($type=="max"){
return $get_field? $resList[count($resList) - 1][$get_field]:$resList[count($resList)-1];
}else{
return $get_field ? $resList[0][$get_field] : $resList[0];
}
}
function list_sort_by($list, $field, $sortby = 'asc') {
if (is_array($list)) {
$refer = $resultSet = array();
foreach ($list as $i => $data)
$refer[$i] = &$data[$field];
switch ($sortby) {
case 'asc': // 正向排序
asort($refer);
break;
case 'desc': // 逆向排序
arsort($refer);
break;
case 'nat': // 自然排序
natcasesort($refer);
break;
}
foreach ($refer as $key => $val)
$resultSet[] = &$list[$key];
return $resultSet;
}
return false;
}