php 셔플 소스좀 알려주실수있나욤?

php 셔플 소스좀 알려주실수있나욤?

QA

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>

답변을 작성하시기 전에 로그인 해주세요.
전체 123,660 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT