我一直在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