0

我编写了一些运行良好的代码,并使用 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 调用中选择随机结果?

4

2 回答 2

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;
    }

小提琴(取自 PHP.net)

于 2013-11-15T06:32:56.890 回答
0

您可以通过SQL QUERY像这样简单地获得 8 个随机变量:-

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 实现中使用这个函数。谢谢。

于 2013-11-15T06:40:53.540 回答