从对象数组中拉出随机对象

时间:2021-07-09 08:07:55

标签: php

我有一个对象数组,我试图从中随机抽取一个对象,但我得到的只是单个对象的 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 没有那个功能?

1 个答案:

答案 0 :(得分:2)

根据描述,快速查看 array_rand 的文档会发现问题:

<块引用>

array_rand — 从数组中选择一个或多个随机键

所以返回值是数组中的一个随机键 - 而不是元素本身。

要获取元素,只需使用键,也许像这样:

$randomKey = array_rand($arrayOfItems, 1);
$randomItem = $arrayOfItems[$randomKey];
相关问题