首页 > 解决方案 > 如何在 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;
}

请问有人可以帮我解决这个问题吗?

标签: phparraysloopsforeach

解决方案


你在数组变量和它们的元素之间搞乱了。

首先,您不能这样做echo $array1;,因为变量是数组,而 echo 是字符串。其次,foreach($array2 as $array2)重新分配$array2为两个元素,因此原始数组混乱。

更好的方法是使用array_rand

foreach(range(1,10) as $v) {
    echo $array1[array_rand($array1)] . PHP_EOL;
}

推荐阅读