基于第一个创建第二个array_rand

时间:2015-04-23 11:37:18

标签: php arrays random

我的array_rand有问题。所以,我有一个像这样的.yml:

discover:
first:
    image: test1.jpg
second:
    image: test2.jpg
third:
    image: test3.jpg

现在在php中我使用array_rand获取此图像:

$firstKey   = array_rand($aArray, 1);
$secondKey = array_rand($aArray, 1);

其中$ aArray它是一个包含.yml数组的数组。 $ firstKey和$ secondKey相等时的问题。在创建第二个array_rand之前,这是删除$ firstKey选择的密钥的方法吗? 我尝试了未设置:

unset($aArray['first']);

但没有结果。 请帮帮我。 Thx提前。

2 个答案:

答案 0 :(得分:4)

如果您不想在两个单独的array_rand调用中获取重复键,则只需在一次调用中获取两个键:

$keys = array_rand($aArray, 2);

或者:

list($firstKey, $secondKey) = array_rand($aArray, 2);

Sample Output

摘自manual

  

<强>参数

     

阵列

     

输入数组。

     

NUM

     

指定应选择的条目数。

     

返回值

     

当只选择一个条目时,array_rand()会返回随机条目的密钥。否则,返回随机条目的键数组。这样做是为了可以从数组中选择随机键以及随机值。尝试选择比数组中更多的元素将导致E_WARNING级别错误,并且将返回NULL

答案 1 :(得分:0)

尝试以下内容:

$firstKey   = array_rand($aArray, 1);
unset($aArray(array_keys($firstKey)[0]));
$secondKey = array_rand($aArray, 1);