2011-04-07 2 views
0

나는 매일 무작위 화하고자하는 웹 사이트에 약간의 내용이 있습니다. 나는 무작위적인 결과물을 하루 종일 일관성있게 유지하고 싶다. 누군가가 페이지에서 앞뒤로 움직인다면 길을 잃지 않을 것입니다.PHP - 오늘까지 일관된 무작위 산출

일관성있는 rand 함수를 찾는 것이 핵심이고, 오늘 날짜는 소금을 사용한다고 생각합니다.

아이디어가 있으십니까? 고려해야 할

+4

"일관된 랜덤"나의 새로운 좋아하는 모순 어법이다. – AgentConundrum

답변

3
$random_key=md5(date('y-m-s')); 

또는

$random_key=sha1(date('y-m-s')); 
+0

좋습니다. 좋은 시작입니다. 나는 일관된 임의의 문자열을 볼 수 있습니다. 제가하고 싶은 일은 제품의 배열에 적용하여 매일 같은 방식으로 이들을 섞습니다. 어떤 아이디어? –

+0

간단한 출력을 공유 할 수 있다면 더 좋을 것입니다! – Sourav

+0

조금 불분명해서 죄송합니다. 다음은 작성한 코드 샘플입니다. '$ products = array();''$ products [] = array ('image'=> 'product-1.jpg', 'name'=> 'product 1'); '$ products [] = array ('image'=> 'product-2.jpg', 'name'=> 'product 2'); ($ products, md5 (date ('d'))) '제품 -3.jpg', '이름'=> '제품 3'), ' 'shuffle ($ 제품);' ' ; // 이것과 같은 것이 필요하다' 'foreach ($ products as $ product) {' 'echo $ product [ 'image']. '
'; ' '}' –

0

것은 바로 올해의 일을 복용하고 무엇을 선택 가능 "임의의"출력하여 집합의 배열 크기에 대한 그의 탄성률을하고있을 사용자를 소개합니다. 결국, 사용자에게 "무작위"는 콘텐츠가 어제와 다른 한 상대적인 용어입니다. 사용 가능한 출력 테이블에서 값을 무작위로 추출한 다음 매일 색인을 생성 할 수 있습니다. 매일 사용자에게 출력이 새롭고 새 것이므로 각 요청에 대해 계속해서 해싱을 피할 수 있습니다.

+0

@rockacola -하지 마라. 당신은 $ banner_id_to_display = $ key % $ total_banner_count를 의미합니까? 그렇지 않으면 언급 한 배너 크기를 초과 할 위험이 있습니까? – Ripred

0

rand() 함수를 사용하는 대신 @Soura가 제안한대로 날짜 값을 사용하여 간단하게 조작 할 수 있습니다.

다른 (그리고 dummier) 예가 될 수 있습니다

$key = time()/(60*60*60); // a numeric key, increment by 1 per day. 
$total_banner_count = 20; 
$banner_id_to_display = $key/$total_banner_count;