2016-07-31 100 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個陣列值。 –

相關問題