博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
php js 排序
阅读量:5061 次
发布时间:2019-06-12

本文共 3018 字,大约阅读时间需要 10 分钟。

 编写背景及排序 规则

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

  //规则:$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;}

 

转载于:https://www.cnblogs.com/jxkshu/p/6249181.html

你可能感兴趣的文章
[ZJOI2007]棋盘制作 【最大同色矩形】
查看>>
合并单元格
查看>>
swift-初探webView与JS交互
查看>>
IOS-图片操作集合
查看>>
Android bitmap图片处理
查看>>
Android应用程序进程启动过程的源代码分析
查看>>
adb logcat 命令行用法
查看>>
Redis学习手册(Key操作命令)
查看>>
模板统计LA 4670 Dominating Patterns
查看>>
泛型第23条:请不要在新代码中使用原生态类型
查看>>
非对称加密
查看>>
bzoj 3413: 匹配
查看>>
从下周开始就要采用网上记录值班日志了
查看>>
在qq中可以使用添加标签功能
查看>>
eclipse 自定义布局
查看>>
团队项目开发客户端——登录子系统的设计
查看>>
【AppScan心得】IBM Rational AppScan 无法记录登录序列
查看>>
[翻译] USING GIT IN XCODE [4] 在XCODE中使用GIT[4]
查看>>
简化通知中心的使用
查看>>
SpringMVC的@Validated校验注解使用方法
查看>>