编写背景及排序 规则

  公司需要对游戏进行一系列的排序,在这里只说我自己遇到问题的哪一段

 //规则:$plat数据要根据$sort里的sort为相应 可以输入一个数字,即为该平台;

解决思路:将$sort要固定单元先固定到$temp里面【占位置】,并将与$plat对应的单元删除

     用for循环依次将$plat还剩的单元插入$temp不为空的位置【填补空缺】

  

php版

$plat = [
0 => [
"code" => "9u",
"order" => 101
], 1 => [
"code" => "xm",
"order" => 107
], 2 => [
"code" => "gp",
"order" => 115
], 3 => [
"code" => "dl",
"order" => 120
], 4 => [
"code" => "baidu",
"order" => 121
], 5 => [
"code" => "ow",
"order" => 117
], 6 => [
"code" => "changxiang",
"order" => 999
], 7 => [
"code" => "360",
"order" => 1000
]
]; $sort = [
0 => [
"code" => "ow",
"sort" => 1
],
1 => [
"code" => "dl",
"sort" => 6
],
]; function formate_sort($sort)
{
$temp = [];
foreach ($sort as $k => $v) {
$temp[$v['code']] = $v['sort'];
}
return $temp;
}
function plat_sort($plat, $formate_sort)
{
$temp = [];
$cou = count($plat);
foreach ($plat as $k => $v) {
if(isset($formate_sort[$v['code']])) {
$temp[$formate_sort[$v['code']]] = $v;
unset($plat[$k]);
}
} for ($i=0; $i< $cou; $i++) {
if(!isset($temp[$i])) {
$temp[$i] = array_shift($plat);
}
} $keys = array_keys($temp);
sort($keys);
$sort_plat = [];
foreach ($keys as $k=>$v) {
$sort_plat[$k] = $temp[$k];
}
return $sort_plat;
}
$formate_sort = formate_sort($sort);
$plat_arr = plat_sort($plat, $formate_sort);

js版

// 数据 排序
function traverseSortTable( plugin_sort_table, sort_platform){ var temp_table = new Array();
var temp_sort = new Array();
var temp_platform = new Array();
var i = 0 //先进行简单的排序并获取 相应的值
$.each( plugin_sort_table, function( k, v ){
i++;
temp_table.push({ 0 : i, 1 : v[1], 2 : v[2], 3:a_default( k, v ) });
}); //1、提取sort_platform里的code与sort生成 数组[baidu: 1, dl: 7]
$.each( sort_platform, function( k, v ){
temp_sort[ v['code'] ] =v['sort'];
}); // 2、将满足翻入相应位子temp_platform,删除temp_table与之对应的coder单元
var length = temp_table.length;
var temp_temp_table = Array();
$.each(temp_table, function(k, v){
var temp = temp_sort[ v[2] ];
if (temp >= 0) {
v[3] = a_cancle( temp, v );
temp_platform[temp] = v;
} else {
temp_temp_table.push(v);
}
});
temp_table = temp_temp_table; // 3、将temp_table的code且不存在与temp_platform依次插入temp_platform 进行从小到大排序
var index = 0;
for (var i = 0; i < length; i++) {
var temp = temp_platform[i];
// console.log(typeof temp);
if (temp === undefined) {
temp_platform[i] = temp_table[index];
index++;
}
} //4、对temp_platform
// new_plugin_sort_table = $.unique( temp_platform ) ;
new_plugin_sort_table = temp_platform;
return false;
}

最新文章

  1. hibernate笔记--双向一对多映射方法
  2. DialogFragment is gone after returning back from another activity
  3. OneProxy添加license
  4. Java类加载和类反射回顾
  5. png图片那点事
  6. Django升级1.6之后出现“Bad Request (400)”错误的解决方案
  7. Cryptography - JavaScript 加密算法库
  8. 关于百度编辑器UEditor(1.4.3)在C#.NET中的应用实例
  9. 微软的Dll管理方案及其变迁(Side-by-side assembly)
  10. PL/SQL 中文转换为\uxxxx格式(unicode)
  11. spark 启动时候报 Unable to load native-hadoop library for your platform 警告
  12. 【转】nodejs
  13. Activity(三)
  14. Hibernate从零开始的反向工程
  15. JS 中的对象
  16. oracle怎么给表和列加注释
  17. SLAM学习笔记 - 世界坐标系到相机坐标系的变换
  18. mail命令
  19. MATLAB 图片折腾4
  20. linux命令总结top命令

热门文章

  1. matlab的滤波器仿真——低通滤波器与插值滤波器
  2. C程序与Lua脚本相互调用
  3. Javascript猜数字游戏
  4. Android开发:程序目录结构详解
  5. Spring知识汇总
  6. js实现表单验证 常用JS表单验证
  7. sql参数化查询in的参数
  8. Thinkphp源码分析系列(六)–路由机制
  9. I/O系统 (输入/输出)
  10. js对象常用2中构造方法