我正在爲我的論壇創建一個「固定」功能,我正在尋找一種方法將固定的主題放在數組的開頭,以便它們「卡」到頁面的頂部。按值排序數組
如果該主題未被固定,則topic_pinned=NULL
如果被固定則爲topic_pinned=0
。
該數組是排序方式topic_updated
。固定的主題需要保持排序topic_updated
,同時停留在頁面的頂部,然後在固定主題下是非固定主題,這些主題也按topic_updated
排序。
主題陣列($forum_topic_results
):
Array
(
[0] => Array
(
[topic_id] => 4
[topic_subject] => Test Subject #4
[topic_date] => 2015-09-10 18:34:18
[topic_by] => 1
[topic_pinned] =>
[topic_updated] => 2015-09-10 20:37:22
)
[1] => Array
(
[topic_id] => 3
[topic_subject] => Test Subject #3
[topic_date] => 2015-08-22 09:24:40
[topic_by] => 1
[topic_pinned] => 0
[topic_updated] => 2015-09-04 22:02:31
)
[2] => Array
(
[topic_id] => 2
[topic_subject] => Test Subject #2
[topic_date] => 2015-08-15 10:56:00
[topic_by] => 1
[topic_pinned] =>
[topic_updated] => 2015-09-04 19:45:32
)
[3] => Array
(
[topic_id] => 1
[topic_subject] => Test Subject #1
[topic_date] => 2015-08-30 19:48:17
[topic_by] => 1
[topic_pinned] => 0
[topic_updated] => 2015-09-03 00:44:38
)
)
PHP:
/**
* getAllTopics
*
* Retreives the topics of the chosen category from the `forum_topics` table.
*
* @param $cat_id
* @access public
*/
public function getAllTopics($cat_id=NULL)
{
$database=$this->database;
$database->query('SELECT topic_id, topic_subject, topic_date, topic_by, topic_pinned, topic_locked FROM forum_topics WHERE topic_cat = :catid ORDER BY topic_updated DESC', array(':catid' => $cat_id));
$result = $database->statement->fetchAll(PDO::FETCH_ASSOC);
return $result;
}
# Get topics
$forum_topic_results = $this->getAllTopics($_GET['cat']);
foreach($forum_topic_results as $forum_topic_row)
{
# Get user's username.
$topic_by=SearchUser($forum_topic_row['topic_by']);
$data.='<tr>'.
'<td>'.
'<h3><a href="'.$_SERVER['PHP_SELF'].'?action=forum_posts&topic='.$forum_topic_row['topic_id'].'">'.$forum_topic_row['topic_subject'].'</a></h3>'.
'by '.$topic_by['username'].' on '.date('D M d, Y g:i a', strtotime($forum_topic_row['topic_date'])).
'</td>'.
'</tr>';
}
結果我想:
Array
(
[0] => Array
(
[topic_id] => 3
[topic_subject] => Test Subject #3
[topic_date] => 2015-08-22 09:24:40
[topic_by] => 1
[topic_pinned] => 0
[topic_updated] => 2015-09-04 22:02:31
)
[1] => Array
(
[topic_id] => 1
[topic_subject] => Test Subject #1
[topic_date] => 2015-08-30 19:48:17
[topic_by] => 1
[topic_pinned] => 0
[topic_updated] => 2015-09-03 00:44:38
)
[2] => Array
(
[topic_id] => 4
[topic_subject] => Test Subject #4
[topic_date] => 2015-09-10 18:34:18
[topic_by] => 1
[topic_pinned] =>
[topic_updated] => 2015-09-10 20:37:22
)
[3] => Array
(
[topic_id] => 2
[topic_subject] => Test Subject #2
[topic_date] => 2015-08-15 10:56:00
[topic_by] => 1
[topic_pinned] =>
[topic_updated] => 2015-09-04 19:45:32
)
)
你想要什麼,預期結果是什麼?你也試過這麼做嗎?請粘貼您的代碼努力也。 –
你想根據'topic_updated'對數組進行排序嗎? –
[參考:在PHP中對數組和數據進行排序的所有基本方法]的可能重複(http://stackoverflow.com/questions/17364127/reference-all-basic-ways-to-sort-arrays-and-data-in -php) –