2016-07-31 41 views
2

我有一个数组,我需要拉多个值,但我不能有任何这些值重复。如何从PHP中的单个数组中获取3个唯一值?

这就是我现在正在做的事情,但它并没有阻止相同数值的倍数。

我的数组是:

$boom = array("1", "2", "3", "4", "5", "6");

,我使用这个代码的3抠值:

echo $boom[array_rand($boom,1)];

最终的结果页面的背景下看起来像这个 - “1,4,3”(或者数字的任何变体......)但是我的问题是我需要脚本来拉取3个不重复的值。

我该怎么做?

回答

4

使用array_unique()获取唯一值,然后使用shuffle()随机选择订单。然后,您可以使用array_slice()获取前三个元素,并且可以使用implode()将它们输出为逗号分隔的字符串。

$a = array_unique(array("1", "2", "3", "4", "5", "6")); 
shuffle($a); 
$b = array_slice($a, 0, 3); 
echo implode(',', $b); 

Demo

+0

完美地工作!谢谢你的帮助。 –

+0

我正在尝试使用18个值的数组,而不是输出3,它以随机顺序输出全部18个数值。当我将数组切割至6个值时,代码工作正常。数组中值的限制是什么? –

+0

我的一个小错误。查看修补程序的更新代码。该演示已更新,以显示它也适用于18个阵列值。 –

相关问题