我编写了一些工作正常的代码并使用for语句迭代数组并显示我想要的八个结果。
$Address = $RPC2->getaddressesbyaccount($_SESSION['email']);
$iteration_addresses = 0;
foreach($Address as $Another) {
$iteration_addresses++;
echo '<b>' . $Another . '</b><br /><br />';
if($iteration_addresses == 8) break;
}
但它通常会选择相同的8个结果,我怎样才能让它选择每个AJAX调用的随机结果?
答案 0 :(得分:1)
在您选择参赛作品之前,只需 shuffle() 您的阵列。
此函数将数组随机化(随机化元素的顺序)。
$Address = $RPC2->getaddressesbyaccount($_SESSION['email']);
shuffle($Address); // Here
$iteration_addresses = 0;
foreach($Address as $Another) {
$iteration_addresses++;
echo '<b>' . $Another . '</b><br /><br />';
if($iteration_addresses == 8) break;
}
<强> Fiddle (taken from PHP.net) 强>
答案 1 :(得分:0)
您可以通过 SQL QUERY 简单地获取8个randoms变量: -
SELECT column FROM table
WHERE email='Your_email'
ORDER BY RAND()
LIMIT 8
我认为这是CI框架,然后像这样实现你的模型功能
function getaddressesbyaccount($email)
{
$this->db->order_by('address', 'RANDOM');
$this->db->limit(8);
$this->db->where(array('email'=>$email));
$query = $this->db->get('table_name');
return $query->result_array();
}
然后您可以在ajax实现中使用此函数。感谢。