如何从对象中获取随机数组?

时间:2018-10-30 05:27:02

标签: php arrays object

我试图从随机项目对象中获取2个项目。我使用了array_rand(),但是输出是array_rand() expects parameter 1 to be array, integer givenTrying 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 :(得分:0)

我认为您的逻辑错误。相反,您应该获得一个随机数并获得与随机数相关的数组。尝试下面的代码!

$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()函数产生更好的随机值,并且比rand()快4倍。

提示2:如果您想要10到100(含)之间的随机整数,请使用rand(10,100)。