foreach 반복문에서는 shuffle 함수 사용 못 하나요?

foreach 반복문에서는 shuffle 함수 사용 못 하나요?

QA

foreach 반복문에서는 shuffle 함수 사용 못 하나요?

본문

for문에서는  변수 정의 다음에 shuffle(변수명) 형식으로 넣어주면 랜덤 출력 잘 되던데,

foreach문에서는 출력이 안 되네요. 

 

혹시, foreach 반복문에서 랜덤으로 뿌려주는 방법이 따로 있을까요?

이 질문에 댓글 쓰기 :

답변 1

$arr = array(1, 2, 3, 4);

shuffle($arr);

foreach($arr as $v) {

   echo $v; 

}

 

이건 잘 됩니다.

정확하게 어떤 걸 원하시는지 잘 모르겠네요. 

담변 감사합니다. 위 예제는 잘 되네요.. 근데, 저는 아래처럼 넣으니까 에러 나더라구요.
shuffle 함수 적용하면 링크는 정상인데 이미지는 엑박으로 뜨더라구요.


<?
$img = array(
 G5_THEME_URL."/img/01.png" => array("http://www.homzzang.com/b/html" => "_blank"),
 G5_THEME_URL."/img/02.png" => array("http://www.homzzang.com/b/css" => "_blank"),
 G5_THEME_URL."/img/03.png" => array("http://www.homzzang.com/b/js" => "_blank"),
 G5_THEME_URL."/img/04.png" => array("http://www.homzzang.com/b/sql" => "_blank"),
 G5_THEME_URL."/img/05.png" => array("http://www.homzzang.com/b/php" => "_blank"),
 G5_THEME_URL."/img/06.png" => array("http://www.homzzang.com/b/builder" => "_self"),
 G5_THEME_URL."/img/07.png" => array("http://www.homzzang.com/b/builder" => "_self"),
 G5_THEME_URL."/img/08.png" => array("http://www.homzzang.com/bbs/write.php?bo_table=order" => "_self")
 );

shuffle($img);  // 요거 넣으면 에러나고, 주석처리하면 정상적으로 떠용.
?>
 
    <?php
  foreach($img as $i => $s) {
          foreach($s as $src => $t) {
            echo "<li><a href='".$src."' target='".$t."'><img src='".$i."'></a></li>";
          }
}
?>

확인해보니...글자는 2중 배열에서도 랜덤 잘 되는데, 이미지는 엑박 뜨네요.
이미지 주소에 해당하는 부분이 단순히 0, 1, 2, 3, 4, 5, , 7 처럼 숫자로만 떠서 그런 것 같아요.







[이미지 경우]


<?
$img = array(
 "http://www.miwit.com/theme/miwit/img/01" => array("http://www.homzzang.com/b/html" => "_blank"),
 "http://www.miwit.com/theme/miwit/img/02" => array("http://www.homzzang.com/b/css" => "_blank"),
 "http://www.miwit.com/theme/miwit/img/03" => array("http://www.homzzang.com/b/js" => "_blank"),
 "http://www.miwit.com/theme/miwit/img/04" => array("http://www.homzzang.com/b/sql" => "_blank"),
 "http://www.miwit.com/theme/miwit/img/05" => array("http://www.homzzang.com/b/php" => "_blank"),
 "http://www.miwit.com/theme/miwit/img/06" => array("http://www.homzzang.com/b/builder" => "_self"),
 "http://www.miwit.com/theme/miwit/img/07" => array("http://www.homzzang.com/b/builder" => "_self"),
 "http://www.miwit.com/theme/miwit/img/08" => array("http://www.homzzang.com/bbs/write.php?bo_table=order" => "_self")
 );

shuffle($img);  // 랜덤 배열
?>
 
    <?php
  foreach($img as $i => $src) {
          foreach($src as $s => $t) {
            echo "<a href=\"{$s}\" target=\"{$t}\">{$i}</a><br>";
          }
}
?>


$img = array(
	array("/img/01.png", "http://www.homzzang.com/b/html", "_blank"),
	array("/img/02.png", "http://www.homzzang.com/b/css", "_blank"),
	array("/img/03.png", "http://www.homzzang.com/b/js", "_blank")
);
shuffle($img);
foreach($img as $k => $v) {
	echo "<li><a href='".$v[1]."' target='".$v[2]."'><img src='".$v[0]."'></a></li>";
}

shuffle까지 넣으실 거면 배열을 이런 식으로 바꿔서 사용하시는 게 낫겠네요.

왕계란 님 답변 참고해서 아래처럼 넣어봤는데.. 페이지 전체가 에러나네요.



$img = array(
array("G5_THEME_URL/img/01.png", "http://www.homzzang.com/b/html", "_blank"),
array("G5_THEME_URL/img/02.png", "http://www.homzzang.com/b/css", "_blank"),
array("G5_THEME_URL/img/03.png", "http://www.homzzang.com/b/js", "_blank"),
array("G5_THEME_URL/img/04.png", "http://www.homzzang.com/b/sql", "_blank"),
    array("G5_THEME_URL/img/05.png", "http://www.homzzang.com/b/php", "_blank"),
array("G5_THEME_URL/img/06.png", "http://www.homzzang.com/b/builder", "_self"),
array("G5_THEME_URL/img/07.png", "http://www.homzzang.com/b/builder", "_self"),
array("G5_THEME_URL/img/08.png", "http://www.homzzang.com/bbs/write.php?bo_table=order", "_self")
);



<div class="banner">
  <ul>
    <?php
    foreach($img as $i => $site) {
  echo "<li><a href=\"{$site[1]}\" target=\"{$site[2]}\"><img src=\"{$site[0]}\"></a></li>";
?>
  </ul>
</div>


혹시, 위 구문에 잘못된 표현이 있나요?

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

회원로그인

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