function arrlist_cond_orderby($arrlist, $cond = array(), $orderby = array(), $page = 1, $pagesize = 20) { $resultarr = array(); // 根据条件,筛选结果 if ($cond) { foreach ($arrlist as $key => $val) { $ok = TRUE; foreach ($cond as $k => $v) { if (!isset($val[$k]) || $val[$k] != $v) { $ok = FALSE; break; } } if ($ok) { $resultarr[$key] = $val; } } } else { $resultarr = $arrlist; } if ($orderby) { list($k, $v) = each($orderby); arrlist_multisort($resultarr, $k, $v == 1); } $start = ($page - 1) * $pagesize; $resultarr = array_assoc_slice($resultarr, $start, $pagesize); return $resultarr; }
function thread_find_by_keyword($keyword) { $threadlist = db_find("SELECT * FROM `bbs_thread` WHERE subject LIKE '%{$keyword}%' LIMIT 60"); arrlist_multisort($threadlist, 'tid', FALSE); // 用 PHP 排序,mysql 排序消耗太大。 if ($threadlist) { foreach ($threadlist as &$thread) { thread_format($thread); $thread['subject'] = post_highlight_keyword($thread['subject'], $keyword); } } return $threadlist; }