从PHP数组输出随机项

从PHP数组输出随机项,php,arrays,Php,Arrays,我试图输出存储在数组中的随机选择的项目。有三个不同的数组,我想从每个数组中输出四项。因此,12个单词出现在页面上 下面是一个实时站点的示例。如果你看到白色的方块,它们应该是文字,但我无法让它工作: 我有三个数组,每个数组有20个单词: <?php $poolOne=array("sparkly","sporty","happy","confident","awesome","funny","awkward","mad","silly","dynamic", "handsome","merr

我试图输出存储在数组中的随机选择的项目。有三个不同的数组,我想从每个数组中输出四项。因此,12个单词出现在页面上

下面是一个实时站点的示例。如果你看到白色的方块,它们应该是文字,但我无法让它工作:

我有三个数组,每个数组有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);
?>
我猜这是不对的,或者我做错了什么

最终,我需要迭代每个数组,并将随机4输出到跨度中。

而不是
shuffle()
您可以使用:

该函数返回所传递数组的随机(唯一)键数组。如果您只需要数组的四个随机元素,那么这将优于修改整个数组的
shuffle()


我的数组在代码中低于此值是否重要


是的。数组必须在代码上方声明,否则在代码运行时它们是未定义的。

Francesca-我使用Jack的建议来使用
array\u 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>


如果你记住杰克的答案,我完全可以。正如他指出的那样,我正在增加他的使用数组的次数。

您犯了一个复制/粘贴错误。请注意,您只打印来自
$poolOne
的数据。它输出的是什么?除了@Grzegorz指出的以外,我看不出你的代码有任何错误。@Grzegorz嗯。。。不,那是对的。我想从第一组中抽出四个词。我没有复制pool2和pool3,因为我不想用代码填充问题。@Francesca-对不起,我有点困惑。您的代码显示您打印了16个单词。来自poolOne的4个单词,然后。。。来自poolOne的4个单词,重复了一次又一次。我怀疑这是错误的,不是吗?我刚把这个放到网站上,但它似乎不起作用。我应该把$key换成什么吗?“它应该是什么?”杰克。慢点您犯了与@Francesca相同的错误-您复制/粘贴并从
$poolOne
数组打印数据。她写了代码“ok”,但犯了和你现在一样的错误。@Grzegorz我不知道你在说什么,我每次都从不同的数组中提取。我的数组在代码中低于这个值有关系吗?我刚刚根据您的代码更新了它,但仍然看到一个空div。@Francesca必须在上面声明数组。
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];
}
<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>