2015-04-23 66 views
1

我的array_rand有問題。所以,我有一個這樣的.yml:基於第一個創建第二個array_rand

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提前。

回答

4

如果你不想得到的array_rand兩個獨立的調用重複鍵,然後就得到一個調用兩個鍵:

$keys = array_rand($aArray, 2); 

或者:

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

摘錄:

參數

陣列

輸入數組。

NUM

指定的條目應該如何挑選。

返回值

當選擇只有一個入口,array_rand()返回一個隨機進入的關鍵。否則,返回隨機條目的一組鍵。這樣做是爲了從數組中挑選隨機密鑰以及隨機值。試圖挑選比數組中更多的元素將導致E_WARNING級錯誤,並且將返回NULL

+0

對不起,我不明白...我需要做的:$ firstKey = array_rand($ aArray,2);和$ secondKey = array_rand($ aArray,2); ? – TanGio

+0

@Gigel不,你不需要調用它兩次,'array_rand'已經有了第二個參數'(int)',在這個參數中你可以控制你使用它的隨機密鑰的個數。檢查出答案中的第二個例子,'$ firstKey'和'$ secondKey'不會是相同的 – Ghost

+0

Thx @Ghost,幫我... – TanGio

0

嘗試如下:

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