如何在没有任何循环php的情况下从数组中随机获取项目(how to get items randomly out of an array without any loop php)

大家好我在我的网页上有这个设计

我想在每个页面刷新每个块中的不同图像时,每个块中的图像变化如块1中的image1和块2中的image2等等我不能使用循环,因为这里的div不相同我有这个特殊的模式

我可以从我的数据库中获取图像并存储在一个数组中,但我不知道如何将它们放在这些div中,彼此是不同的

看下面的代码

$getimages=mysqli_query($conn,"select uid,vname,thumb,views from tablename where something !='0' and somethingelse !='' order by rand() limit 21"); $Results = array(); while($tmp=mysqli_fetch_assoc($getimages)){ $Results[] = array('uid' => $tmp['uid'], 'vname' => $tmp['vname'], 'thumb' => $tmp['thumb']); } $i=randim('13'); function randim($code){ return rand(0,10); }

请给我一些提示来解决这个问题我希望每个块中的单个图像我不能使用循环,因为div是非重复的

在我的div我称之为图像

<div class="somethingddd" style="background:url('mem/<?=$Results[$i]['uid']?>/img/<?=$Results[$i]['thumb']?>');background-size:cover;"> </div>

hello all i am having this design in my web page

i want different images in each of the block each time the page refreshes the images changes in each block like image1 in block 1 and image2 in block 2 and so on i can not use loop as the divs here are not the same i have this particular pattern

i can get the images from my database and stored in an array but i have no idea how to place them in these divs individual to be distinct from each other

see my code below

$getimages=mysqli_query($conn,"select uid,vname,thumb,views from tablename where something !='0' and somethingelse !='' order by rand() limit 21"); $Results = array(); while($tmp=mysqli_fetch_assoc($getimages)){ $Results[] = array('uid' => $tmp['uid'], 'vname' => $tmp['vname'], 'thumb' => $tmp['thumb']); } $i=randim('13'); function randim($code){ return rand(0,10); }

please give me some hints to solve this i want individual images in each of the block i can not use loop as the divs are non repetative

in my div i am calling images as

<div class="somethingddd" style="background:url('mem/<?=$Results[$i]['uid']?>/img/<?=$Results[$i]['thumb']?>');background-size:cover;"> </div>

最满意答案

我能想到的最简单的方法是对阵列进行洗牌,然后使用固定偏移量来获取每个位置元素。

<?php shuffle($Results); ?> <div class="position0" style="background:url('mem/<?=$Results[0]['uid']?>/img/<?=$Results[0]['thumb']?>');"></div> <div class="position1" style="background:url('mem/<?=$Results[1]['uid']?>/img/<?=$Results[0]['thumb']?>');"></div> <div class="position2" style="background:url('mem/<?=$Results[2]['uid']?>/img/<?=$Results[0]['thumb']?>');"></div> <div class="position3" style="background:url('mem/<?=$Results[3]['uid']?>/img/<?=$Results[0]['thumb']?>');"></div> <div class="position4" style="background:url('mem/<?=$Results[4]['uid']?>/img/<?=$Results[0]['thumb']?>');"></div> <div class="position5" style="background:url('mem/<?=$Results[5]['uid']?>/img/<?=$Results[0]['thumb']?>');"></div> <div class="position6" style="background:url('mem/<?=$Results[6]['uid']?>/img/<?=$Results[0]['thumb']?>');"></div>

然后在您的CSS中,您可以根据类名将样式与每个位置相关联。

Easiest way that I can think of is to shuffle your array then use fixed offsets to get each positional element.

<?php shuffle($Results); ?> <div class="position0" style="background:url('mem/<?=$Results[0]['uid']?>/img/<?=$Results[0]['thumb']?>');"></div> <div class="position1" style="background:url('mem/<?=$Results[1]['uid']?>/img/<?=$Results[0]['thumb']?>');"></div> <div class="position2" style="background:url('mem/<?=$Results[2]['uid']?>/img/<?=$Results[0]['thumb']?>');"></div> <div class="position3" style="background:url('mem/<?=$Results[3]['uid']?>/img/<?=$Results[0]['thumb']?>');"></div> <div class="position4" style="background:url('mem/<?=$Results[4]['uid']?>/img/<?=$Results[0]['thumb']?>');"></div> <div class="position5" style="background:url('mem/<?=$Results[5]['uid']?>/img/<?=$Results[0]['thumb']?>');"></div> <div class="position6" style="background:url('mem/<?=$Results[6]['uid']?>/img/<?=$Results[0]['thumb']?>');"></div>

Then in your css you can have the styles associated with each of the position based on the class name.

更多推荐