2017-10-13 60 views
2

请帮助我需要创造一些阵列从这个案例随机:PHP产生的foreach和产生它作为阵列

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) 

谢谢

回答

3

你正在一个一个元素的数组($lala2)和“随机”它。

你需要做的是在每次迭代添加新元素,然后才用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

+0

这看起来完全像什么我正在打字。打败我吧;) – IncredibleHat

1

您需要每次通过循环添加到阵列,而不是替换它,然后在循环后使用array_rand()。在每次迭代,这就是为什么你得到所有3个元素打印出来

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