喜欢充满挑战的人生

js php 对数组进行排序

在项目中,我们经常会碰到要求对数组进行排序的需求。

    从实现上来说,可以从后端进行排序,也可以前端处理。

    先说 用 js 排序 :

     例:  var arr=[5,7,2,9,1,4,8,11,3,16,6,34,12,45,13,56];

                    //我们对这串数字进行排序。

                    for(var x =0; x<arr.length; x++){

                         for(var y=0; y<x ; y++){

                                if(arr[x] > arr[y]){

                                     var item = arr[x];

                                     arr[x] = arr[y];

                                     arr[y] = item; 

                                }

                         }

                   }

  下面来解释下上面的代码,首先,我们对这个arr数组进行了遍历,遍历次数就是数组长度,然后在进行对比

       当x = 0 的时候,里面的for 不执行

       当x = 1 的时候,y= 0 , 此时, 7>5成立,位置互换, 也就是数组现在变成了  [7,5,2,9,1,4,8,11,3,16,6,34,12,45,13,56]

       当x = 2 的时候,y = [0,1] , 此时 ,2 > 7 不成立   

                                                        2 > 5  不成立  数组顺序不变。

      当x = 3 的时候, y = [0,1,2] ........ 以此类推。   

      这里有一点需要注意,比如。 x = 3 的时候,也就是 9 大于7 ,然后,位置互换, 这时,数组就是一个新的数组的。这时的  arr[3] 的值就不是9了,而是7, 因为数组的值变了,但是这里取得下标是不变的。

      还有就是 , 这里的排序方式, 我画了张图 , 首先是 x1 跟 y,比较,满足条件就互换位置。然后x2 跟 y1,比较,满足条件,互换位置,x2 跟 y2 比较....  注意,当x2跟y1比较换位置后,x2 的数值会变的。

                  

     下面是php 数值排序,逻辑是一样的,我就直接贴码了。

                

 

 

 

      

 

posted on 2017-04-24 16:02  卢金金  阅读(240)  评论(0)    收藏  举报

导航

终日错错碎梦间,忽闻春尽强登山。因过竹院逢僧话,偷得浮生半日闲。