我从数据库中获取数据,并将其排序到数组中。从查询(其被显示在正确的顺序)在不改变排序顺序的情况下对数组进行排序
数据:
id task_id note date_created user_name document_name document_type
238 131 3g 1385563455 Admin doc3 jpg
238 131 3g 1385563455 Admin doc2 png
238 131 3g 1385563455 Admin doc1 png
240 131 sd 1385563536 Admin NULL NULL
241 131 sd 1385563565 Admin NULL NULL
242 131 qw 1385563612 Admin NULL NULL
然后我获取数据并将其存储在一个阵列:
$all_notes = array();
foreach($notes as $note) {
$all_notes[$note["id"]]["text"] = $note["note"];
$all_notes[$note["id"]]["user_name"] = $note["user_name"];
$all_notes[$note["id"]]["date"] = $note["date_created"];
$all_notes[$note["id"]]["task_id"] = $_POST['task_id'];
$all_notes[$note["id"]]["docs"]["document_name"][] = $note["document_name"];
$all_notes[$note["id"]]["docs"]["document_type"][] = $note["document_type"];
}
当我呼应$ all_notes数组,排序顺序现在完全相反。而不是第一行数据是id 238,现在是242.即使当我改变查询以相反的方式排序时,数组仍然将数据从238排序到242(而不是242到238,这就是它应该)。
您的帮助将不胜感激!
在查询中,我是否添加“ORDER BY notes.date_created DESC”或“ORDER BY notes.date_created ASC”,数组将始终以相反的顺序输出。 – steeped
如果您真的想要结果翻转......为什么不按ID编号?您可以按照您知道的多个列进行排序 - 您可以先按ID排序,然后按date_created排序。 – Darius
同样的问题。这是我的查询:“SELECT notes。*,users.name as'user_name',documents.name as'document_name',documents.ext as'document_type' FROM users,notes LEFT JOIN documents on notes.id = documents.note_id WHERE task_id =?AND notes.assigned_user_id = users.id ORDER BY id ASC“ – steeped