一个数组里多个关键词,随机组合输出。刷新组合顺序不一样输出字符串
$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]];
这个就差点符合我的要求了。但是组合的数据会重复应该不难,但是我是小白。来个大哥帮忙阿
3 回答
POPMUISE
TA贡献1765条经验 获得超5个赞
最简单的方式
$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
TA贡献1802条经验 获得超5个赞
// 打乱数组
shuffle($a);
// 取数组前三个串接成字符串
return implode('', array_slice($a, 3));
// 输出可能是:greenbrownred
- 3 回答
- 0 关注
- 471 浏览
添加回答
举报
0/150
提交
取消