如何在foreach循环PHP中使用2个数组来选择随机元素

如何在foreach循环PHP中使用2个数组来选择随机元素,php,arrays,loops,foreach,Php,Arrays,Loops,Foreach,我有两个阵列: $array1 = array("red", "blue", "green", "yellow"); $array2 = array("one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten"); 我想随机回显一种颜色10次 我尝试使用foreach循环和shuffle执行此操作,但当我尝试此操作时,出现错误: 数组到字符串的转换 这是我的代码: shuffle($array1);

我有两个阵列:

$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为$array2)
被重新分配
$array2
作为两个元素,因此原始数组被弄乱了

更好的方法是:


-另一个答案的变体:

$i = 0;
while ($i++ < 10) {
    echo $array1[array_rand($array1)];
}
$i=0;
而($i++<10){
echo$array1[数组单位($array1)];
}

用正确的语法检查您的想法:
$array2
的cbk38长度是否可以增加或减少?或者永远是10?
$i = 0;
while ($i++ < 10) {
    echo $array1[array_rand($array1)];
}