php - 如何在 foreach 循环 PHP 中使用 2 个数组来选择随机元素
问题描述
我有两个数组:
$array1 = array("red", "blue", "green", "yellow");
$array2 = array("one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten");
我想随机回显一种颜色 10 次。
我尝试使用foreach
循环和来做到这一点shuffle
,但是当我尝试这个时,我得到了错误:
数组到字符串的转换......
这是我的代码:
shuffle($array1);
foreach($array2 as $array2) {
echo $array1;
}
请问有人可以帮我解决这个问题吗?
解决方案
你在数组变量和它们的元素之间搞乱了。
首先,您不能这样做echo $array1;
,因为变量是数组,而 echo 是字符串。其次,foreach($array2 as $array2)
重新分配$array2
为两个元素,因此原始数组混乱。
更好的方法是使用array_rand:
foreach(range(1,10) as $v) {
echo $array1[array_rand($array1)] . PHP_EOL;
}
推荐阅读
- mongodb - 502 Bad Gateway 使用 Atlas、Mongoose 和 Lambda
- sql-server - 使用 Case 语句时的语法错误(语句前有 Between)
- python-3.x - 用于管理终端应用程序进程的库
- reactjs - 即使在启用结算帐户后,我仍然在使用 google maps places api 时收到“状态:OVER_QUERY_LIMIT”
- c++ - For循环在cpp中只执行一次
- reactjs - 输入 '({ items }: PropsWithChildren
) => Element[]' 不可分配给类型 'FunctionComponent ' - java - 我的 JavaFX 应用程序上的 ClassCasting 错误和 tableView 上显示值的问题
- javascript - 内联 JS 在移动设备上产生 2 个新窗口
- javascript - 反应:在移动浏览器按钮 onClick hadler 触发多次。台式机没问题
- c# - 我对 sql 数据库及其视图逻辑有疑问?