【问题标题】:How to use 2 arrays in a foreach loop PHP for choosing random element如何在 foreach 循环 PHP 中使用 2 个数组来选择随机元素
【发布时间】:2019-06-06 07:58:43
【问题描述】:

我有两个数组:

$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;
}

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

【问题讨论】:

  • 用正确的语法检查你的想法:eval.in/1111066
  • cbk38 $array2的长度可以增加还是减少?还是永远是 10?

标签: php arrays loops foreach


【解决方案1】:

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

首先,您不能使用echo $array1;,因为变量是数组,而回显是字符串。其次,foreach($array2 as $array2) 被重新分配 $array2 作为两个元素,所以原始数组是混乱的。

更好的方法是使用array_rand

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

【讨论】:

    【解决方案2】:

    while-另一个答案的变体:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-04
      • 1970-01-01
      相关资源
      最近更新 更多