php 셔플 소스좀 알려주실수있나욤?
본문
<?php
$random = rand(0,1);
$href = array( 'www.naver.com', 'www.daum.net');
$src = array( '/img/A.jpg', '/img/B.jpg');
?>
<div class="banner">
<a href="<?php echo $href[$random];?>"><img src="<?php echo $src[$random];?>"></a>
</div>
위의 소스는 php를 이용해서 A.jpg배너와 B.jpg배너를
랜덤의 확률로 번갈아가면서 1개만 노출시키는건데요
만약 이렇게 하지않고 2개의 배너 모두 보이게하되
자리만 서로 랜덤의 확률로 셔플 시키고자 하면 위의
소스를 어떻게 바까야할까요?
답변 2
<?
$rand = rand(0,1);
$href = array( 'www.naver.com', 'www.daum.net');
$src = array( '/img/A.jpg', '/img/B.jpg');
if($rand==1) {
$a = "1";
$b = "0";
} else {
$a = "0";
$b = "1";
}
?>
<div class="banner">
<a href="<?php echo $href[$a];?>"><img src="<?php echo $src[$a];?>"></a>
<a href="<?php echo $href[$b];?>"><img src="<?php echo $src[$b];?>"></a>
</div>
또는 아래와 같은 방법이 있습니다.
2개 이상의 배너를 랜덤으로 노출할 경우...
<?php
$banner[] = array(
'href'=>'www.naver.com',
'src'=>'/img/A.jpg'
);
$banner[] = array(
'href'=>'www.daum.com',
'src'=>'/img/B.jpg'
);
$max = count($banner); // 배너의 총갯수
$idx = range(0,($max-1),1); //배너의 최대갯수까지의 연속된 숫자 배열을 생성
shuffle($idx); // 생성된 숫자배열을 섞는다.
?>
<div class="banner">
<?php for($i=0; $i<count($banner); $i++) { ?>
<a href="<?php echo $banner[$idx[$i]]['href']; ?>"><img src="<?php echo $banner[$idx[$i]]['src'];?>" />
<?php } ?>
</div>
!-->!-->
url과 img를 이미 갖고 있고 고정되어 있다면 아래 코드로 하는 것도 있습니다.
<script>
var ul = document.querySelector('ul');
for (var i = ul.children.length; i >= 0; i--) {
ul.appendChild(ul.children[Math.random() * i | 0]);
}
</script>
<ul>
<li><a href="a.php"><img src="a.jpg"></a></li>
<li><a href="b.php"><img src="b.jpg"></a></li>
</ul>
답변을 작성하시기 전에 로그인 해주세요.