$v) { if(isset($v['category'])) { $category_list = empty($category_list) ? $v['category'] : array_merge($category_list, $v['category']); unset($v['category']); } $list = empty($list) ? $v : array_merge($list, $v); } foreach ($category_list as $k_category => $category) { $category_list[$k_category]['sort'] = $category['sort'] ?? 100; $category_list[$k_category]['app_list'] = []; foreach ($list as $k => $app) { $app_category = $app['category'] ?? "basic"; if($app_category == $category['key']) { $category_list[$k_category]['app_list'][] = $app; } } } $sort = array_column($category_list, 'sort'); array_multisort($category_list, $sort); return $category_list; } }