我有一個布爾值數組,我想從中選擇一個隨機索引,其值爲true並將其設置爲false。選擇條件的隨機索引值
我當然可以,用蠻力靠撿指數做到這一點,直到我打了一個的值是true:
$arr = array(true, false, false, true, false, true);
var_dump($arr);
$i = array_rand($arr);
while(!$arr[$i])
{
$i = array_rand($arr);
}
$arr[$i] = false;
var_dump($arr);
這就造成這樣的事情,在第四個條目得到了改變。
array(6) {
[0]=>
bool(true)
[1]=>
bool(false)
[2]=>
bool(false)
[3]=>
bool(true)
[4]=>
bool(false)
[5]=>
bool(true)
}
array(6) {
[0]=>
bool(true)
[1]=>
bool(false)
[2]=>
bool(false)
[3]=>
bool(false)
[4]=>
bool(false)
[5]=>
bool(true)
}
但是,我必須用大得多的數組來做這個操作幾次。在某些時候,陣列幾乎完全是錯誤的,在這種情況下,蠻力方法效率不高。
有沒有更優雅的方法來解決這個問題?任何種類的array_rand()
函數,我可以給出一個先決條件?
你打算在一個循環或類似的東西運行此那會在一個點上做每個「真實」的入口? –