php - 如何从php数组中检索不包括特定元素的随机元素

标签 php arrays random

拜托,我需要一些帮助。我有下面给出的数组,我想从中返回随机元素。

$data = array('Computer', 'Laptop', 'Mouse', 'Keyboard');
$rand = rand(0,count($data)-1);
echo $data[$rand];

上面的代码按预期工作。但是,我不希望能够从返回的列表中排除特定元素,如下所示:

$exclude = "Mouse";
$data = array('Computer', 'Laptop', 'Mouse', 'Keyboard');
$rand = rand(0,count($data)-1);
echo $data[$rand];

预期的结果是,在这种情况下 $exclude "Mouse" 中指定的元素将不会作为随机元素之一返回。

也许鼠标元素将首先从数组中删除,如下所示,然后返回一个随机元素:

$data = array('Computer', 'Laptop', 'Keyboard');

最佳答案

您可以使用array_diff$data 中删除 $exclude 中的值。

$exclude = array('Mouse');
$data = array('Computer', 'Laptop', 'Mouse', 'Keyboard');
$excluded_data = array_values(array_diff($data, $exclude));
$rand = rand(0,count($excluded_data)-1);
echo $excluded_data[$rand];

此代码从 $data 中删除 Mouse,然后从新数组中获取随机值。随机数据的数组将像您所描述的那样:

$data = array('Computer', 'Laptop', 'Keyboard');

关于php - 如何从php数组中检索不包括特定元素的随机元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33097557/

相关文章:

php - 如何获取 Zend_DB_table 受影响的行?

arrays - 如何提高代码的速度?

java - For Each 循环首先构建然后检索 JTextField 输入

python - 从 oracle 获取随机行的最有效方法

PHP互斥(mutex)

php - facebook oauth 无法注销不接受权限的用户

php - 让 SQL 从嵌套数组中选择

java - 使用 (int...i) 和 (Integer...i) 的 varagrs 有什么区别

java - 从 arrayList 中删除随机索引

java - 如何从枚举生成随机值并将其放入数组中?