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

时间:2019-06-06 07:58:43

标签: 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);
foreach($array2 as $array2) {
    echo $array1;
}

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

2 个答案:

答案 0 :(得分:5)

你在数组变量和它们的元素之间乱七八糟。

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

更好的方法是使用array_rand

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

答案 1 :(得分:0)

while-另一个答案的变体:

$i = 0;
while ($i++ < 10) {
    echo $array1[array_rand($array1)];
}