난수에 따라 다른 순서로 항목을 출력하는 함수가 있습니다. 예를 들어 1/2의 시간은 뽀빠이와 그 목록에서 1 위를 차지할 것이며 타코 벨과 로고는 2 위, 절반은 시간의 절반이 될 것입니다.PHP의 의사 난수
사용자가 페이지를 다시로드하거나 페이지로 돌아 오면 문제가 다시 발생합니다. $ Range 여기에는 db의 항목 수가 있으므로 1에서 $ 범위 사이의 임의의 숫자가 사용됩니다.
$random = mt_rand(1,$range);
for ($i = 0 ; $i < count($variants); $i++) {
$random -= $variants[$i]['weight'];
if ($random <= 0) {
$chosenoffers[$tag] = $variants[$i];
break;
}
}
나는 세션의 시작 부분에 가서이 설정 : 나도 같은 일을 사용하는 의사 난수 생성기의 일종으로 기능의에는, mt_rand를 대체 할 수있는 아이디어와
if (!isset($_SESSION['rannum'])){
$_SESSION['rannum']=rand(1,100);
}
을 -100 난수를 세션 전체의 시드로 사용합니다. 그런 식으로 이미 작성된 모든 코드를 다시 작성할 필요가 없습니다. 잘못된 나무를 짖거나 좋은 생각입니까?
을 말했듯이 세션의 씨앗을 saveing ? – Ozzy