从数组中获取随机ID

时间:2014-04-10 06:44:44

标签: php arrays

我有一系列ID。现在它有125个ID。我只贴了几个。我想从中选择一个随机ID并在查询中使用它。我正在使用rand_array,但我有一个这样的简单数组:array(1,2,3);使用这个新数组我不知道如何获取随机ID。

array(125) {
  [0]=>
  object(stdClass)#21 (1) {
    ["id"]=>
    string(1) "5"
  }
  [1]=>
  object(stdClass)#22 (1) {
    ["id"]=>
   string(1) "6"
  }
  [2]=>
  object(stdClass)#23 (1) {
    ["id"]=>
    string(1) "7"
  }
  [3]=>
   object(stdClass)#24 (1) {
    ["id"]=>
    string(1) "8"
  }
  [4]=>
  object(stdClass)#25 (1) {
["id"]=>
string(1) "9"
  }
  [5]=>
  object(stdClass)#26 (1) {
    ["id"]=>
   string(2) "10"
  }
  [6]=>
  object(stdClass)#27 (1) {
["id"]=>
string(2) "11"
  }
  [7]=>
  object(stdClass)#28 (1) {
    ["id"]=>
   string(2) "12"
  }
    }

2 个答案:

答案 0 :(得分:0)

作为 @Jack commented的问题,这可能是您尝试做的最简单的方法:

echo $array[array_rand($array)]->id;

如果您希望ID用于其他目的,您可以从数组中的对象中提取ID并在该数组上应用array_rand()

$idsArr = array(); // Initialize an empty array

foreach ($array as $obj) {
    $idsArr[] = $obj->id; // Push each ID into the array
}

$random_id = $array[array_rand($idsArr)]; // Get a random ID from the array

答案 1 :(得分:0)

你的新数组是二维的 - 你需要指定两个ID才能获取一个元素。所以试试:

$rand = rand(0,count($array));
$item=$my_array[$rand]['id'];

但是我无法理解你的数组的结构,所以如果你print_r它我可以改进这个

欢呼声