查询多张表获取数据列,数据汇总后的分页排序等操作!
/**
* 数组分页
* @param array $arrayData 数组数据
* @param int $page 第几页
* @param int $pageSize 每页展示条数
* @return array
*/
function arrayToPageData($arrayData = [], $page = 1, $pageSize = 10)
{
$arrayData = array_values((array)$arrayData);
$pageData['list'] = array_slice($arrayData, ($page - 1) * $pageSize, $pageSize);
$pageData['pagination']['total'] = count($arrayData);
$pageData['pagination']['page'] = $page;
$pageData['pagination']['pageSize'] = $pageSize;
return $pageData;
}
一种自定义的排序方法:
/**
* list_sort_by()对查询结果集进行排序
* @param array $list 查询结果
* @param string $field 排序的字段名
* @param array $sortby 排序类型
* asc正向排序 desc逆向排序 nat自然排序
* @return array
*/
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;
}
一种用php自带的函数进行多字段的排序方法:
array_multisort(array_column($data, '字段名'), SORT_DESC, array_column($data, '字段名'), SORT_ASC, $data);