【求助】php数组,随机组合输出字符串,刷新网页重新组合顺序,不重复

一个数组里多个关键词,随机组合输出。刷新组合顺序不一样
输出字符串

$a=array("red","green","blue","yellow","brown");
$random_keys=array_rand($a,4);
echo $a[$random_keys[0]]."
";
echo $a[$random_keys[1]]."
";
echo $a[$random_keys[2]];

这个就差点符合我的要求了。
但是组合的数据会重复
应该不难,但是我是小白。
来个大哥帮忙阿

烙印99
浏览 472回答 3
3回答

POPMUISE

最简单的方式 $a = ["red", "green", "blue", "yellow", "brown"]; shuffle($a); // 打乱数组 echo array_shift($a); // 或者用array_pop函数也可以,这样组合数据就不会重复了 echo array_shift($a); echo array_shift($a); 注意,这个方式会改变原数组,如果不希望改变原数组的话,那就需要加一次判断 $a = ["red", "green", "blue", "yellow", "brown"]; shuffle($a); $has = []; // 保存取出来的元素 // 判断元素是否获取过并且取出的元素个数是否已经满足需求 while (!in_array($a[0], $has) && count($has) <= 3) { $has[] = $a[0]; } echo implode(',', $has); // 将取出的元素用,组合成字符串输出

12345678_0001

// 打乱数组 shuffle($a); // 取数组前三个串接成字符串 return implode('', array_slice($a, 3)); // 输出可能是:greenbrownred

摇曳的蔷薇

感觉你需要的是洗牌算法,洗牌算法就是shuffle函数。
打开App,查看更多内容
随时随地看视频慕课网APP