Beispiel #1
0
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;
}