我一直在php頁面上運行一個foreach循環1000次。 foreach循環內的代碼看起來象下面這樣:在php中優化for循環
$first = mysql_query("SELECT givenname FROM first_names order by rand() LIMIT 1");
$first_n = mysql_fetch_array($first);
$first_name = $first_n['givenname'];
$last = mysql_query("SELECT surname FROM last_name order by rand() LIMIT 1");
$last_n = mysql_fetch_array($last);
$last_name = $last_n['surname'];
$first_lastname = $first_name . " " . $last_name;
$add = mysql_query("SELECT streetaddress FROM user_addresss order by rand() LIMIT 1");
$addr = mysql_fetch_array($add);
$address = $addr['streetaddress'];
$unlisted = "unlisted";
$available = "available";
$arr = array(
$first_lastname,
$address,
$unlisted,
$available
);
然後我一直在使用array_rand功能每次循環運行得到一個隨機值:
<td><?php echo $arr[array_rand($arr)] ?></td>
所以加載PHP頁面正在採取真的很長時間。有沒有一種方法可以優化此代碼。由於每次循環運行時我需要一個唯一的值
爲什麼喲你甚至使用循環?你從SQL的'rand()'中獲得一個隨機值? – Aquillo 2013-05-14 17:08:25
您必須一次從數據庫中選擇所有記錄。每個查詢都很昂貴。 – 2013-05-14 17:08:26
這不是導致這個「真正長時間」的循環,而是您查詢的數量:準確的是2000。 – 2013-05-14 17:08:58