0
我對數組的排序有問題。如何使用usort對合並的數組進行排序?
我使用兩個查詢在MySQL數據庫中提取從兩個不同的表的數據,然後使用array_merge
加入在單個陣列中的結果。除排序問題外,一切正常。這兩個表有一個日期字段以這種格式5/25/2015
,並且我想在此日期降序排列所提取的數據進行排序,但這並沒有發生。
這裏是我使用的代碼:
$sql = "SELECT * FROM tab1 WHERE data between '$one_parameter' and '$second_parameter' and id_ute = '$ute'";
$res = mysql_query($sql);
$data = array();
while ($rows = mysql_fetch_array($res, MYSQL_ASSOC)) {
$data[] = $rows;
}
$sql2 = "SELECT * FROM tab2 WHERE data_ass between '$one_parameter' and '$second_parameter' and id_ute = '$ute'";
$res2 = mysql_query($sql2);
$data2 = array();
while ($rows2 = mysql_fetch_array($res2, MYSQL_ASSOC)) {
$data2[] = $rows2;
}
$combinedData = array_merge($data,$data2);
function cmp($a, $b){
return $b['data'] - $a['data_ass'];
}
usort($combinedData, "cmp");
$json = json_encode($combinedData);
echo $json;
但它不工作。我究竟做錯了什麼?
我需要創造這樣的事情,按時間順序:
[
{
"id_tur": "1886",
"id_ute": "1",
"data": "2015-05-22",
"orario": "13.00 - 19.00",
"tipo_serv": "home",
},
{
"id_tur": "1877",
"id_ute": "1",
"data": "2015-05-12",
"orario": "00.00 - 09.00",
"tipo_serv": "work",
},
{
"id_ass": "256",
"id_ute": "1",
"data_ass": "2015-05-08",
"notes": "lorem",
"tipo_serv": "0",
},
{
"id_turno": "1296",
"id_ute": "1",
"data": "2015-05-02",
"orario": "07.00 - 14.00",
"tipo_serv": "city",
}
]
非常感謝。它的工作原理應該如此 – Sixdas