我正在尝试输出存储在数组中的随机选择项。有三个不同的数组,我想从每个数组中输出四个项目。所以页面上会出现12个单词。
以下是实时网站的示例。在你看到白色方块的地方,它们应该是单词,但是我无法使它工作:http://francesca-designed.me/create-a-status/
我有三个数组,每个数组有20个单词:
<?php
$poolOne=array("sparkly","sporty","happy","confident","awesome","funny","awkward","mad","silly","dynamic",
"handsome","merry","horrid","funky","loud","chirpy","posh","clever","pretty","athletic");
shuffle($poolOne);
$poolTwo=array("pink","purple","melon","lemon","lime","red","blue","peach","rouge","green",
"ginger","blonde","brown","yellow","gold","violet","rainbow","maroon","indigo","silver");
shuffle($poolTwo);
$poolThree=array("zebra","lion","tiger","fish","ktten","butterfly","octopus","squid","puppy","bug",
"spider","cat","hamster","newt","frog","monkey","dog","rabbit","pig","sheep");
shuffle($poolThree);
?>
我尝试使用shuffle()
来重新排列这些数字,然后随机将它们调用到我的span
中:
<div class="words one">
<span><?php for($i=0;$i<4;$i++) {echo $poolOne[$i];} ?></span>
<span><?php for($i=0;$i<4;$i++) {echo $poolOne[$i];} ?></span>
<span><?php for($i=0;$i<4;$i++) {echo $poolOne[$i];} ?></span>
<span><?php for($i=0;$i<4;$i++) {echo $poolOne[$i];} ?></span>
</div>
我猜这不对,或者说我做错了。
最终我需要遍历每个数组并将随机数4输出到跨度中。
答案 0 :(得分:2)
您可以使用array_rand()
代替shuffle()
:
foreach (array_rand($poolOne, 4) as $key) {
echo $poolOne[$key];
}
foreach (array_rand($poolTwo, 4) as $key) {
echo $poolTwo[$key];
}
foreach (array_rand($poolThree, 4) as $key) {
echo $poolThree[$key];
}
该函数返回您传递的数组的随机(唯一)键数组。如果你只需要数组中的四个随机元素,那么这将优先于修改整个数组的shuffle()
。
我的数组在代码中是否低于此值?
是的,确实如此。数组必须在此代码之上声明,否则在代码运行时它们将被定义。
答案 1 :(得分:0)
Francesca - 我使用Jack的建议来使用array_rand
。
请删除您的shuffle
电话,而不是使用此电话:
<div class="words one">
<span><?php foreach( array_rand( $poolOne, 4 ) as $key ) { echo $poolOne[ $key ] ; } ?></span>
<span><?php foreach( array_rand( $poolTwo, 4 ) as $key ) { echo $poolTwo[ $key ] ; } ?></span>
<span><?php foreach( array_rand( $poolThree, 4 ) as $key ) { echo $poolThree[ $key ] ; } ?></span>
</div>
如果你标记杰克的答案我完全没问题。正在他指出要使用array_rand()。