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; } }