话不多说先上图:
很显然这是一个多维数组,根据前端的要求,他让我把$data['children']里面数据,根据id来升序传递给他。
那这个就简单了。(你不可能当着前端的面说不会搞吧)
我们先看下数组的数据结构
array(1) {
[0]=>
array(5) {
["id"]=>
int(1)
["pid"]=>
int(0)
["cate_name"]=>
string(6) "菜单"
["pic"]=>
string(0) ""
["children"]=>
array(6) {
[0]=>
array(3) {
["id"]=>
int(8)
["cate_name"]=>
string(9) "土特产"
["pic"]=>
string(0) ""
}
[1]=>
array(3) {
["id"]=>
int(7)
["cate_name"]=>
string(12) "酒水饮料"
["pic"]=>
string(0) ""
}
[2]=>
array(3) {
["id"]=>
int(6)
["cate_name"]=>
string(6) "主食"
["pic"]=>
string(0) ""
}
[3]=>
array(3) {
["id"]=>
int(5)
["cate_name"]=>
string(6) "炒菜"
["pic"]=>
string(0) ""
}
[4]=>
array(3) {
["id"]=>
int(4)
["cate_name"]=>
string(6) "凉菜"
["pic"]=>
string(0) ""
}
[5]=>
array(3) {
["id"]=>
int(2)
["cate_name"]=>
string(12) "主打特色"
["pic"]=>
string(0) ""
}
}
}
}
话不多说,再看我是如何将$data['children']下面的数据是如何进行升序 排序的:
/*************这一块是查询。可以省略不看****************************/
//第一步查询数据,我用的是Tp6.0框架
$cateogry = StoreCategory::with('children')
->where('is_show',1)
->order('sort desc,id asc')
->where('pid',0)
->hidden(['add_time','is_show','sort','children.sort','children.add_time','children.pid','children.is_show'])
->select()
->toArray();
/*************这一块是查询。可以省略不看****************************/
//第二步 取出需要排列的数组
$a = $cateogry[0]['children'];
//第三步再取出 取出需要排序的参照的键
$cmf_arr = array_column($a, 'id');
//第四部 进行升序排序(这一步不要用变量接收,array_multisort()返回的是布尔值)
array_multisort($cmf_arr,SORT_ASC, $a);
//第五步 重新赋值,替换数组
$cateogry[0]['children'] = $a;
//第六步,返回给前端
return app('json')->success($cateogry);
让我们再看下结果:
再看一下返回给前端的数据:
好了,这下已经满足了前端的API要求了。