쿠폰발행 로직을 짜고싶습니다. 채택완료
쿠폰 안에 들어갈값들은 아래와같습니다.
$couponArray=array(
0=>"0",1=>"1",2=>"2",3=>"3",4=>"4",5=>"5",6=>"6",7=>"7",8=>"8",9=>"9",
10=>"A",11=>"B",12=>"C",13=>"D",14=>"E",15=>"F",16=>"G",17=>"H",18=>"I",19=>"J",
20=>"K",21=>"L",22=>"M",23=>"N",24=>"O",25=>"P",26=>"Q",27=>"R",28=>"S",29=>"T",
30=>"U",31=>"V",32=>"W",33=>"X",34=>"Y",35=>"Z"
);
위값으로 6~10자리정도의 쿠폰을 랜덤으로 만들고싶은데 어떻게 할수있을까여
고수님들 답변기다립니다
댓글을 작성하려면 로그인이 필요합니다.
답변 2개
채택된 답변
+20 포인트
8년 전
function acoupon($couponNum) {
$couponArray=array(
0=>"0",1=>"1",2=>"2",3=>"3",4=>"4",5=>"5",6=>"6",7=>"7",8=>"8",9=>"9",
10=>"A",11=>"B",12=>"C",13=>"D",14=>"E",15=>"F",16=>"G",17=>"H",18=>"I",19=>"J",
20=>"K",21=>"L",22=>"M",23=>"N",24=>"O",25=>"P",26=>"Q",27=>"R",28=>"S",29=>"T",
30=>"U",31=>"V",32=>"W",33=>"X",34=>"Y",35=>"Z"
);
mt_srand(microtime(true)*1000000); //난수값 초기화
for($k=0;$k<$couponNum;$k++){ //생성 할 쿠폰의 갯수
$resultStr="";
for($i=0;$i<10;$i++){ //생성할 쿠폰의 자릿수 반드시 짝수여야 암호화된 뒷자리를 얻을 수 있다.
$randNo = rand(0,35); //0과 35사이의 난수를 구한다
$resultStr .= $couponArray[$randNo];
}
$numArray=array_flip($couponArray); //키와 값을 바꾼다
$incodeNum="";
for ($ab=0;$ab<5;$ab++){
$enum_first=substr($resultStr,0+$ab,1);
$enum_second=substr($resultStr,5+$ab,1);
$sum_enum=$numArray[$enum_first]+$numArray[$enum_second];
$in_num=$sum_enum % 35;
$incodeNum=$incodeNum.$couponArray[$in_num];
}
echo "============================="."
";
echo substr($resultStr,0,5)."-".substr($resultStr,5,5)."-".$incodeNum."
";
echo "============================="."
";
//$mt= microtime(true);
//print $mt."
";
}
}
acoupon(10);
// ----------------------------------------
$time_end = microtime(true);
echo $time_start."
";
echo $time_end."
";
$difftime = $time_end - $time_start;
$difftime = $difftime;
echo "Processing Time : $difftime sec";
로그인 후 평가할 수 있습니다
댓글을 작성하려면 로그인이 필요합니다.
8년 전
php의 shuffle 함수를 이용하여 섞은뒤 원하시는 자릿수 대로 뽑으시면 될것같습니다ㅎㅎ
로그인 후 평가할 수 있습니다
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인전체 질문 목록
채택
채택
답변대기
답변대기
채택
채택
답변대기
채택
답변대기
채택
채택
채택
답변대기
채택
채택
답변대기
답변대기
채택
채택