我有一个对象数组,我试图从中随机抽取一个对象,但我得到的只是单个对象的 id
。
$arrayOfItems = [];
foreach($boxItems as $item)
{
if($item->getMainImage() != null)
{
array_push($arrayOfItems, $item);
}
}
if(count($arrayOfItems)==0)
{
$this->fail("Theres no items with images");
}
$randomItem = array_rand($arrayOfItems,1);
我做错了什么还是 array_rand 没有那个功能?
答案 0 :(得分:2)
根据描述,快速查看 array_rand
的文档会发现问题:
array_rand — 从数组中选择一个或多个随机键
所以返回值是数组中的一个随机键 - 而不是元素本身。
要获取元素,只需使用键,也许像这样:
$randomKey = array_rand($arrayOfItems, 1);
$randomItem = $arrayOfItems[$randomKey];