0

次の MongoDB オブジェクトがあります。

{
   "_id": ObjectId("50954f0d13f88da4a590e5ff"),
   "uname": "Eamorr",
   "1": {
     "table": "1",
     "color": "red",
     "time": NumberInt(1351963491),
     "niceTime": "2012-11-03T17: 24: 51+00: 00"
  },
   "3": {
     "table": "3",
     "color": "green",
     "time": NumberInt(1351963567),
     "niceTime": "2012-11-03T17: 26: 07+00: 00"
  },
   "4": {
     "table": "4",
     "color": "orange",
     "time": NumberInt(1351963506),
     "niceTime": "2012-11-03T17: 25: 06+00: 00"
  }
}

このオブジェクトを「時間」でソートするにはどうすればよいですか?

リストの中でtable 3一番になりたい、table 4二番目になりたい、最後になりたい。table 1

私は本当に立ち往生しています.助けてください!


更新: サーバーが次の JSON オブジェクトを返すことを追加する必要があります。

[{
    "table": "4",
    "color": "orange",
    "time": 1351965770,
    "niceTime": "2012-11-03T18:02:50+00:00"
}, {
    "table": "3",
    "color": "red",
    "time": 1351964379,
    "niceTime": "2012-11-03T17:39:39+00:00"
}, {
    "table": "1",
    "color": "red",
    "time": 1351964997,
    "niceTime": "2012-11-03T17:49:57+00:00"
}]

これは並べ替えが簡単ですか?

どうもありがとう、

4

2 に答える 2

2
$coll->find($range, $co)->sort(array('time' => -1) );
于 2012-11-03T17:39:12.100 に答える
1

とった...

2 番目の JSON (上記) を使用して、次のことを行いました。

function my_sort($a, $b){
    if ($a['time'] > $b['time']) {
        return -1;
    } else if ($a['time'] < $b['time']) {
        return 1;
    } else {
        return 0;
    }
}

usort($obj,'my_sort');
echo json_encode($obj);
于 2012-11-03T18:06:54.067 に答える