【问题标题】:PHP generate foreach and generate it as arrayPHP生成foreach并将其生成为数组
【发布时间】:2017-10-13 18:22:48
【问题描述】:

请帮助我需要从这个案例中随机创建一些数组:

foreach (range(1,3) as $number) { 
$lala1= "\"img$number\",";
$lala2 = array("$lala1");
echo $lala2[array_rand($lala2)];
}

给我这个结果:

"img1","img2","img3",

但我需要像这样随机显示结果:

img1 (with random img1,img2, or img3)

谢谢

【问题讨论】:

    标签: php arrays random foreach


    【解决方案1】:

    您正在制作一个单元素数组 ($lala2) 并在每次迭代时“随机化”它,这就是打印出所有 3 个元素的原因。

    您需要做的是在每次迭代中添加一个新元素,然后才使用array_rand() 从结果数组中选择一个随机元素:

    <?php
    $imgs = []; // define the array where you'll store the elements
    foreach (range(1,3) as $number) { 
        $lala1 = "\"img$number\",";
        $imgs[] = $lala1; // add the new element to the array
    }
    echo $imgs[array_rand($imgs)]; // pick a random value
    

    Demo

    【讨论】:

    • 这看起来和我输入的完全一样。打败我;)
    【解决方案2】:

    每次循环都需要添加到数组中,而不是替换,循环后使用array_rand()

    $lala2 = array();
    foreach (range(1, 3) as $number) {
        $lala1 = "\"$img$number\",";
        $lala2[] = $lala1;
    }
    echo $lala2[array_rand($lala2)];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-13
      • 2020-08-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多