2013年8月5日 星期一

php 將array弄亂(取代mysql order by rand()的簡易方法)

因為工作需要從肥大的文章資料表中找出資料並加以隨機排列
使用mysql 使用了以下的語法後
 "SELECT * FROM table ORDER BY rand() LIMIT 20"
 發現搜尋時間效益不彰,
因此將內容先行取出再隨機排列


<?php
//$article 為取得文章的array
//產生一組1~20的array
$numbers = range(1, 20);
//打亂此array
shuffle($numbers);
foreach ($numbers as $number) {
    echo $article[$number]['article_title'];
}

?>