배열 구성 중 랜덤으로 선택하려면?

배열 구성 중 랜덤으로 선택하려면?

QA

배열 구성 중 랜덤으로 선택하려면?

본문

$genre = array(

array("A.php", "A"),    // (주소, 이름)

array("B.php", "B"),

array("C.php", "C"),

array("D.php", "D")

);

 

 $genre 배열변수를 foreach 구문 이용해 $g로 치환할 경우

$g[0]주소$g[1]이름이 되잖아요.

 

그럴 경우, 주소랑 이름이 각각 4개의 배열이 생성되잖아요.

주소: $g[0][0], $g[0][1], $g[0][2], $g[0][3] 

이름: $g[1][0], $g[1][1], $g[1][2], $g[1][3] 

 

주소 배열 중 하나를 랜덤으로 불러오려고 합니다. 아래처럼 했는데, 안 되네요. 

 

 

$max = sizeof($g[0])-1;   // $g[0] 배열의 갯수에서 1을 뺀 숫자를 변수 $max에 할당  (최대값)

$rand = rand (0, $max);  // 0 ~ 최대값 중 랜덤으로 숫자를 하나 골라 $rand 변수에 할당

 

<?=$genre[0][$rand]?>





ps.

sizeof vs count  함수 차이점? 

이 질문에 댓글 쓰기 :

답변 2


<?
$genre = array(
    array("A.php", "A"),
    array("B.php", "B"),
    array("C.php", "C"),
    array("D.php", "D")
);
$max = sizeof($genre) - 1;
$rand = rand (0, $max);
echo $genre[$rand][0];
?>

우선은 $g라는 변수는 어디에서 오는지 모르겠네요. 오타를 내신 건가 싶기도 하고. 

그리고 주소값은 

$g[0][0]

$g[0][1]

$g[0][2]

이게 아니라

$g[0][0]

$g[1][0]

$g[2][0]

이렇게 되어 있습니다.

 

참고로 sizeof(), count()가 php에서는 같은 함숩니다.

php.net에 가서 검색해 보시면 아시겠지만 sizeof() 설명글에는 count() 함수에 대한 별칭이라고 나옵니다.

count(), sizeof() 둘 중에 편한 거 쓰시면 됩니다.

예제

<?php

$list[] = '1';

$list[] = '2';

$list[] = '3';
shuffle($list);
foreach($list as $value) {

echo $value;

}

?> 

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

회원로그인

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