随机选择数组中的元素,然后从数组中删除

ttm*_*tmt 16 php arrays

我有一系列的短语.我想在一个循环中从数组中随机选择短语.我不想在循环中再次选择相同的短语.我以为我可以随机选择短语,然后在下一个循环之前将其删除.

http://codepad.org/11l0nStX

<?php
for ($i=0; $i<16; $i++) {
    $phrases = array(
        'Hello Sailor', 'Acid Test', 'Bear Garden', 'Botch A Job',
        'Dark Horse', 'In The Red', 'Man Up', 'Pan Out',
        'Quid Pro Quo', 'Rub It In', 'Turncoat', 'Yes Man',
        'All Wet', 'Bag Lady', 'Bean Feast', 'Big Wig',
    );

    $ran_Num = array_rand($phrases);
    $ran_Phrase = $phrases[$ran_Num];
    unset($phrases[$ran_Phrase]);
    echo $ran_Phrase . "\r\n";
    echo count($phrases) . "\r\n";
}
Run Code Online (Sandbox Code Playgroud)

是否有可能在每个循环中从数组中随机选择一个不同的短语?

Mār*_*dis 34

以随机顺序对数组进行随机播放,然后关闭最后一个元素.

$array = [...];

shuffle($array);

while($element = array_pop($array)){
  echo 'Random element:' . $element;
}
Run Code Online (Sandbox Code Playgroud)