как получить массив случайным образом от объекта? - PullRequest
0 голосов
/ 30 октября 2018

Я пытался создать массив из случайного предмета, чтобы получить 2 предмета. Я использовал array_rand(), но вывод array_rand() expects parameter 1 to be array, integer given и Trying to get property of non-object

Мой код для получения случайного предмета:

$k=2;    
$centroid = array();
    for($i=0; $i<$k; $i++){
     $centroid[] = new DataSet($table[array_rand($i)]->sig_class_id,$table[array_rand($i)]->sig_priority);
    }

Получить данные от

$query = mysqli_query($conn,"SELECT sig_class_id, sig_priority FROM coba");
  $table=array();
  while ($row = mysqli_fetch_object($query)) {
      $table[] = new DataSet($row->sig_class_id, $row->sig_priority);
  }

и класс DataSet равен

class DataSet{
  public $sig_class_id;
  public $sig_priority;
  function __construct($sig_class_id, $sig_priority){
    $this->sig_class_id = $sig_class_id;
    $this->sig_priority = $sig_priority;
  }
 }

есть мысли?

1 Ответ

0 голосов
/ 30 октября 2018

Я думаю, что вы ошибаетесь логикой. Вместо этого вы должны получить случайное число и получить связанный массив случайных чисел. Попробуйте код ниже!

$random = 0;
$centroid = array();
    for($i=0; $i=2; $i++){
     $random = rand();
     $centroid[] = new DataSet($table[$random]->sig_class_id,$table[$random]->sig_priority);
    }

== Редактировать 1 ==
Совет 1: Вы также можете использовать функцию mt_rand () для получения лучшего случайного значения и в 4 раза быстрее, чем rand ().

Совет 2: Если вам нужно случайное целое число от 10 до 100 (включительно), используйте rand (10 100).

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