2012-02-14 5 views
0

私たちが持っているものは、以下のようなJSON文字列です。我々は、彼らが離れに提供し、順番にそれを取るように、それが最後のほとんどの違いを示しており、例えば以下のため最初javascript order JSON by SUM

という結果をシャッフル/注文するjavascriptの方法で必要なもの

[{"id":"1499","tradingname":"Golden Shutter Photography","listed":"2012-01-26 19:26:24","pictureurl":"","business_id":"1499","storeid":"1","phone":"6143737477","street":"122 Avebery Drive","suburb":"Berwick ","state":"1","postcode":"3806","discription":"","long":"","lat":"","offer":"500|50","tstamp":"2012-01-26 19:26:24","offers":"500|50"}] 

それは

のためにそれを置くでしょう

9 | 20

100 | 10

100 |

は、JSONでの申し出が

100以下されていると言います100 | 20

100 | 10

100 |

9は、今の問題は、彼らが次のようなものですので、いくつかのオファーはもっとして1つの申し出を持っていることになります

100 |私たちが移動する。この場合、10

| 20100 | 9100 100 |最後まで9は、次のようになりこれも

100 | 20100 | 10100 | 9

任意のヘルプは素晴らしいことだ

+0

@rdlowreyは私がなぜJavaScriptで注文を並べ替えMySQLの時点でそれを注文するとjQuery .sort – RussellHarrower

+0

を使用しようとしましたか? json_encodeを使用する前に、配列内の配列を順序付けるためにPHPでmultisortを使用してください。 – busypeoples

答えて

0

これはあなたに考えを与えるはずです。しかし、json_encodeを呼び出す前に、マルチポートを使ってPHPで配列をソートする方が効果的です。

var arr = [ 
     {"id":"1498","tradingname":"Golden Shutter Photography1","listed":"2012-01-26 19:26:24","pictureurl":"","business_id":"1499","storeid":"1","phone":"6143737477","street":"122 Avebery Drive","suburb":"Berwick ","state":"1","postcode":"3806","discription":"","long":"","lat":"","offer":"200|60","tstamp":"2012-01-26 19:26:24","offers":"200|40"}, 
     {"id":"1499","tradingname":"Golden Shutter Photography2","listed":"2012-01-26 19:26:24","pictureurl":"","business_id":"1499","storeid":"1","phone":"6143737477","street":"122 Avebery Drive","suburb":"Berwick ","state":"1","postcode":"3806","discription":"","long":"","lat":"","offer":"400|50","tstamp":"2012-01-26 19:26:24","offers":"200|50"}, 
     {"id":"1500","tradingname":"Golden Shutter Photography3","listed":"2012-01-26 19:26:24","pictureurl":"","business_id":"1499","storeid":"1","phone":"6143737477","street":"122 Avebery Drive","suburb":"Berwick ","state":"1","postcode":"3806","discription":"","long":"","lat":"","offer":"200|50","tstamp":"2012-01-26 19:26:24","offers":"400|50"} 
    ]; 


    function sortbyoffer(a,b) { 
     var aa = a.offer.split("|"); 
     var bb = b.offer.split("|"); 
     if(aa[0] == bb[0]) { 
     return aa[1] - bb[1]; 
     } else { 
     return aa[0] - bb[0]; 
     } 
    } 

    arr.sort(sortbyoffer); 

    for(var n=0;n<arr.length;n++){ 
     document.write(arr[n].id + ' ' + arr[n].tradingname + ' ' + arr[n].offer + '<br>'); 
    } 

出力は次のようになります。

1500 Golden Shutter Photography3 200|50 
1498 Golden Shutter Photography1 200|60 
1499 Golden Shutter Photography2 400|50