在PHP中洗牌数组
我有以下代码:在PHP中洗牌数组,php,shuffle,Php,Shuffle,我有以下代码: <?php foreach($bb['slides'] as $b): $url = "domain.com/" . $b->image . "; echo($url); endforeach; ?> 同样,foreach应该是 for($array_name as $array_item) { // do stuff } 由于$bb是一个数组数组,shuffle()不会随机化子数组,请在嵌套数组上尝试shuffle,如下所示: shuffle($bb[
<?php
foreach($bb['slides'] as $b):
$url = "domain.com/" . $b->image . ";
echo($url);
endforeach;
?>
同样,foreach应该是
for($array_name as $array_item) {
// do stuff
}
由于$bb是一个数组数组,shuffle()不会随机化子数组,请在嵌套数组上尝试shuffle
,如下所示:
shuffle($bb['slides']);
看起来您需要执行shuffle($bb['slides'])
您可能已经执行了外部$bb数组的shuffle,而您本应执行以下操作:
shuffle($bb['slides']);
foreach($bb['slides'] as $b):
以随机顺序显示内容
<?php
$myContentList = array (
'One',
'Two',
'Three',
'Four'
);
shuffle ($myContentList);
foreach ($myContentList as $displayAtRandomOrder) {
echo '<div>' . $displayAtRandomOrder . '</div>';
}
?>
<?php
$myImagesList = array (
'one.png',
'two.png',
'three.jpg',
'four.gif'
);
shuffle ($myImagesList);
foreach ($myImagesList as $displayImagesAtRandomOrder) {
echo '<img src="images/' . $displayImagesAtRandomOrder . '" width="200" height="40" border="0" />';
}
?>
以随机顺序显示图像
<?php
$myContentList = array (
'One',
'Two',
'Three',
'Four'
);
shuffle ($myContentList);
foreach ($myContentList as $displayAtRandomOrder) {
echo '<div>' . $displayAtRandomOrder . '</div>';
}
?>
<?php
$myImagesList = array (
'one.png',
'two.png',
'three.jpg',
'four.gif'
);
shuffle ($myImagesList);
foreach ($myImagesList as $displayImagesAtRandomOrder) {
echo '<img src="images/' . $displayImagesAtRandomOrder . '" width="200" height="40" border="0" />';
}
?>
使用shuffle时,您的代码是什么样子的?这本应该奏效的。也许对于一个3的样本集,你只是碰巧运气不好,它又回到了原来的顺序。你做过洗牌($bb)还是洗牌($bb['slides'])?应该是洗牌($bb['slides'])?我用mt_rand实现的比洗牌更好()他的foreach循环看起来是正确的。呃……除了冒号。:)@新手-如果$bb['slides']是一个数组,那么你是对的。在我看来,他似乎正在访问一个元素(“幻灯片”),并试图访问该元素。也就是说,我认为$bb是他试图循环的数组。实际上他的冒号也是正确的。没有注意到他正在使用控制结构的替代语法。我不再经常看到这种情况了。@New Guy-你说得对,语法没有问题:我的foreach循环强调了外部循环和内部循环。大括号只是来自habitIt,成功时返回TRUE,失败时返回FALSE。但是如果你在洗牌后转储数组,它将被洗牌,