как получить случайные значения строк из таблицы и сохранить их в массиве для индивидуального вызова - PullRequest
1 голос
/ 04 июля 2019

Я хочу объявить 3 случайные строки из таблицы, которые будут использоваться в качестве центроида кластера

имя таблицы - data_kuesioner и содержит столбцы variable1, variable2, variable3, variable4, variable5

howчтобы выбрать 3 разные случайные строки и значения, затем вызовите его индивидуальное значение, например:

$centroid1cluster1 = (random row 1 variable 1)
$centroid2cluster1 = (random row 1 variable 2)
$centroid3cluster1 = (random row 1 variable 3)
$centroid4cluster1 = (random row 1 variable 4)
$centroid5cluster1 = (random row 1 variable 5)

$centroid1cluster2 = (random row 2 variable 1)
$centroid2cluster2 = (random row 2 variable 2)
$centroid3cluster2 = (random row 2 variable 3)
$centroid4cluster2 = (random row 2 variable 4)
$centroid5cluster2 = (random row 2 variable 5)

 $centroid1cluster3 = (random row 3 variable 1)
$centroid2cluster3 = (random row 3 variable 2)
$centroid3cluster3 = (random row 3 variable 3)
$centroid4cluster3 = (random row 3 variable 4)
$centroid5cluster3 = (random row 3 variable 5)

и т. д.

Ответы [ 2 ]

1 голос
/ 04 июля 2019

Чтобы получить ровно 3 и случайные строки, вы можете использовать запрос ниже

$sql = $this->db->query("select variable1,variable2,variable3,variable4,variable5 from data_kuesioner order by RAND() limit 3");
echo'<pre>';print_r($sql->result());die;

с методом цепочки

$this->db->select("variable1,variable2,variable3,variable4,variable5");
$this->db->from('data_kuesioner');
//$this->db->order_by('variable1','RANDOM');
//or
$this->db->order_by('rand()');
$this->db->limit(3);
$query = $this->db->get();
if ($query->num_rows() > 0) {
    $result = $query->result_array();
    $j = 1;
    $dynamicVariable = array();
    foreach ($result as $row) {
       $dynamicVariable['centroid1cluster'.$j]= $row['variable1'];
       $dynamicVariable['centroid2cluster'.$j] = $row['variable2'];
       $dynamicVariable['centroid3cluster'.$j] = $row['variable3'];
       $dynamicVariable['centroid4cluster'.$j] = $row['variable4'];
       $dynamicVariable['centroid5cluster'.$j] = $row['variable5'];
       $j++;
    }
}
echo'<pre>';print_r($dynamicVariable);die;
1 голос
/ 04 июля 2019

Использовать array_rand ('$ var', 2)

$ input = array ("Neo", "Morpheus", "Trinity", "Cypher", "Tank");

$ rand_keys = array_rand ($ input, 2);

echo $ input [$ rand_keys [0]]."\ n";

Ссылка

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...