从数组中选择随机数据(PHP)?

时间:2013-11-15 06:27:53

标签: php arrays

我编写了一些工作正常的代码并使用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调用的随机结果?

2 个答案:

答案 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实现中使用此函数。感谢。