编写背景及排序 规则

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

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

php js 排序的更多相关文章

  1. 排序图解:js排序算法实现

    之前写过js实现数组去重, 今天继续研究数组: 排序算法实现. 排序是数据结构主要内容,并不限于语言主要在于思想:大学曾经用C语言研究过一段时间的排序实现, 这段时间有空用JS再将排序知识点熟悉一遍. ...

  2. 利用js排序html表格

    在web前端开发中会遇到排序等功能,当然也可以用服务器端来排序,今天我做一个笔记,怎么用js来实现这些复杂的功能呢. 在学习这个之前一定得用html dom jquery 的知识,要不没有办法看明白的 ...

  3. JS排序之快速排序

    JS排序之快速排序 一个数组中的数据,选择索引为(2/数组长度)的那个数据作为基数,数组中的其他数据与它对比,比它数值小的放在做数组,比它数值大的放在右数组,最后组合 左数组+基数+右数组,其中,左数 ...

  4. 总结下js排序算法和乱序算法

    其实本人最怕的就是算法,大学算法课就感觉老师在讲天书,而且对于前端来说,算法在实际的应用中实在是很有限.毕竟算法要依靠大量的数据为基础才能发挥出算法的效率,就浏览器那性能,......是吧,退一万步说 ...

  5. js排序算法汇总

    JS家的排序算法   十大经典算法排序总结对比 一张图概括: 主流排序算法概览 名词解释: n: 数据规模k:“桶”的个数In-place: 占用常数内存,不占用额外内存Out-place: 占用额外 ...

  6. JS排序算法

    1.冒泡排序 冒泡算法是比较相邻的两项,如果前者比后者大,就交换他们. 假设一共有n项,那么一共需要n-1趟,第一趟需要交换n-1次,但是第一趟结束后,最后一项基本确定就是最大项了,所以第二次需要交换 ...

  7. js 排序:sort()方法、冒泡排序、二分法排序。

    js中的排序,这里介绍三种,sort()方法.冒泡排序.二分法排序. 1.sort方法 写法:  数组.sort(); 返回排好序的数组,如果数组里是数字,则由小到大,如果是字符串,就按照第一个字符的 ...

  8. js排序与重组

    前几天同学发给我一个问题,思路想整理一下,也供大家参考.实际上这道题本质就是考察的是去重与排序的问题.好了闲话少说,上题. function input(req){     if(req<=10 ...

  9. 常用的 JS 排序算法整理

    关于排序算法的问题可以在网上搜到一大堆,但是纯 JS 版比较零散,之前面试的时候特意整理了一遍,附带排序效率比较. //1.冒泡排序 var bubbleSort = function(arr) { ...

随机推荐

  1. 给iOS开发新手送点福利,简述文本属性Attributes的用法

    给iOS开发新手送点福利,简述文本属性Attributes的用法   文本属性Attributes 1.NSKernAttributeName: @10 调整字句 kerning 字句调整 2.NSF ...

  2. View & draw

    When an iOS application is launched, it starts a run loop. The run loop’s job is to listen for event ...

  3. C++设计模式-Mediator中介者模式

    Mediator中介者模式作用:用一个中介对象来封装一系列的对象交互.中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互. UML如下: Colleage抽象同事类 ...

  4. 3、NAT

    <计算机网络(第5版)>P173    P182

  5. TableViewCell,TableView,UITableViewCell

    这次的学习是在Navigation-based Application模板中,用RootViewController class设置操作方法,使用UITableView的属性值.在导航控制器控件为程序 ...

  6. Nodejs简单介绍以及在windows环境下安装与配置流程

    简介 一. Nodejs是什么? Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境.Node.js 使用了一个事件驱动.非阻塞式 I/O 的模型,使其轻量又高效. ...

  7. 第一个ruby程序

    老实说不是很喜欢去讨论ruby和python的对比,似乎总是把两个语言放在对立的位置上,我觉得没有必要,同样是动态语言,同样是解释型脚本语言,很多特性都是互相影响的,语言本身也在不断进化,我们更应该关 ...

  8. web开发以及分布式开发C/S B/S系统结构

    分布式开发,由客户端发送请求给服务端,经服务端进行请求处理后返回处理结果(远程方法调用),在客户端发送请求,获取httpclient/okclient对象,传入参数(URL以及其余参数等),发送请求  ...

  9. js back动作

    history.back(-1):直接返回当前页的上一页,数据全部消息,是个新页面 history.go(-1):也是返回当前页的上一页,不过表单里的数据全部还在 history.back(0) 刷新 ...

  10. Android IOS WebRTC 音视频开发总结(七九)-- WebRTC选择H.264的四大理由

    本文主要介绍WebRTC选择H.264的理由(我们翻译和整理的,译者:weizhenwei,校验:blacker),最早发表在[编风网] 支持原创,转载必须注明出处,欢迎关注我的微信公众号blacke ...