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

标签 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";
}

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

最佳答案

以随机顺序打乱数组,只弹出最后一个元素。

$array = [...];

shuffle($array);

while($element = array_pop($array)){
  echo 'Random element:' . $element;
}

关于php - 随机选择数组中的元素然后从数组中删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17110740/

相关文章:

php - 如何处理可能是数组或值的 JSON 输出

php - 检查事务的状态 - MySQL 和 PHP

java - 在循环中间创建一个新的开始

c - 将固定大小的数组作为指针传递给函数时的警告

JavaScript for 循环对象替换未定义并为不存在的键赋值

php - 使用 phpMailer 向数据库中的多个收件人发送电子邮件,使用复选框发送到选定的电子邮件地址

php - Sendmail 管道到 PHP : Could not open input file

javascript - 对具有 JavaScript 中偏移量的对象数组进行排序

arrays - 如何快速卡住数组?

javascript - 使用 Blade 组件和 javascript