1、一维数组
结构:
{
"data": [
{
"id": 1,
"name": "套餐一",
"category": null,
"type": 1,
"short_introduction": "套餐介绍",
"detail": "套餐详情",
"price": 4500,
"discount_price": null
},
{
"id": 2,
"name": "套餐二",
"category": null,
"type": 1,
"short_introduction": "套餐介绍二",
"detail": "套餐详情二",
"price": 2300,
"discount_price": null
},
{
"id": 3,
"name": "套餐三",
"category": null,
"type": 1,
"short_introduction": "套餐三",
"detail": null,
"price": 2300,
"discount_price": null
},
{
"id": 4,
"name": "套餐四",
"category": null,
"type": 1,
"short_introduction": "套餐四",
"detail": "套餐详情",
"price": 1700,
"discount_price": null
}
],
"meta": {
"pagination": {
"total": 4,
"count": 4,
"per_page": 10,
"current_page": 1,
"total_pages": 1,
"links": []
}
}
}
$sort = request()->input('sortby','id');
$order = request()->input('order','asc');
$paginator = $this->packageService->with(includes())->paginate();
$packages = fractal($paginator, new PackageTransformer())
->parseIncludes(includes())
->toArray();
$results = [];
if('price' == $sort) {
foreach ($packages['data'] as $unique => $package) {
$results[] = $package['price'];
}
if('asc' == $order) {
array_multisort($results,SORT_ASC,$packages['data']);
}else{
array_multisort($results,SORT_DESC,$packages['data']);
}
}
if (!$packages) {
return error(\Msg::PACKAGE_NOT_FOUND);
}
return $this->response($packages);
2、二维数组
- $arrUsers = array(
- array(
- 'id' => 1,
- 'name' => '张三',
- 'age' => 25,
- ),
- array(
- 'id' => 2,
- 'name' => '李四',
- 'age' => 23,
- ),
- array(
- 'id' => 3,
- 'name' => '王五',
- 'age' => 40,
- ),
- array(
- 'id' => 4,
- 'name' => '赵六',
- 'age' => 31,
- ),
- array(
- 'id' => 5,
- 'name' => '黄七',
- 'age' => 20,
- ),
- );
- $sort = array(
- 'direction' => 'SORT_DESC', //排序顺序标志 SORT_DESC 降序;SORT_ASC 升序
- 'field' => 'age', //排序字段
- );
- $arrSort = array();
- foreach($arrUsers AS $uniqid => $row){
- foreach($row AS $key=>$value){
- $arrSort[$key][$uniqid] = $value;
- }
- }
- if($sort['direction']){
- array_multisort($arrSort[$sort['field']], constant($sort['direction']), $arrUsers);
- }
- var_dump($arrUsers);