다중 for문 재문의..
본문
1,540개의 연산을 858번 처리하도록 한 코드이고,
1번~773번 까지는 정상 값
774번 부터 858번까지는 나올 수 없는 값이 출력됩니다.
제 똥컴에서는 이 루프문을 처리하는데 10~13초 걸리는데;; 비효율적인거 같기도하네요.
코드가 다소 못배운 티가 날 수도 있는데 양해 바라며..
<?php
//연산파트
$pool = range('a', 'v');
$len = count($pool); // $len = 22
//$res = [];
for($x=0; $x<$len; $x++) {
for($y=$x+1; $y<$len; $y++) {
for($z=$y+1; $z<$len; $z++) {
$res[] = sprintf('%s%s%s', $pool[$x], $pool[$y], $pool[$z]);
}
}
}
$lottery_table = 'lottery_result';
$lottery_write_table = $g5['write_prefix'] .$lottery_table;
$sql = " select * from $lottery_write_table order by wr_num asc ";
$result = sql_query($sql);
for($n=1; $win_row=sql_fetch_array($result); $n++) {
for ($k=1; $k <= 6; $k++) {
if($gr_a[0] == $win_row['wr_'.$k]) { ${'a1'.$k.'_'.$n} = 1; } else if($gr_a[0] == $win_row['wr_7']) { ${'a11_'.$n} = 7; }
if($gr_a[1] == $win_row['wr_'.$k]) { ${'a2'.$k.'_'.$n} = 1; } else if($gr_a[1] == $win_row['wr_7']) { ${'a21_'.$n} = 7; }
if($gr_b[0] == $win_row['wr_'.$k]) { ${'b1'.$k.'_'.$n} = 1; } else if($gr_b[0] == $win_row['wr_7']) { ${'b11_'.$n} = 7; }
if($gr_b[1] == $win_row['wr_'.$k]) { ${'b2'.$k.'_'.$n} = 1; } else if($gr_b[1] == $win_row['wr_7']) { ${'b21_'.$n} = 7; }
if($gr_c[0] == $win_row['wr_'.$k]) { ${'c1'.$k.'_'.$n} = 1; } else if($gr_c[0] == $win_row['wr_7']) { ${'c11_'.$n} = 7; }
if($gr_c[1] == $win_row['wr_'.$k]) { ${'c2'.$k.'_'.$n} = 1; } else if($gr_c[1] == $win_row['wr_7']) { ${'c21_'.$n} = 7; }
if($gr_d[0] == $win_row['wr_'.$k]) { ${'d1'.$k.'_'.$n} = 1; } else if($gr_d[0] == $win_row['wr_7']) { ${'d11_'.$n} = 7; }
if($gr_d[1] == $win_row['wr_'.$k]) { ${'d2'.$k.'_'.$n} = 1; } else if($gr_d[1] == $win_row['wr_7']) { ${'d21_'.$n} = 7; }
if($gr_e[0] == $win_row['wr_'.$k]) { ${'e1'.$k.'_'.$n} = 1; } else if($gr_e[0] == $win_row['wr_7']) { ${'e11_'.$n} = 7; }
if($gr_e[1] == $win_row['wr_'.$k]) { ${'e2'.$k.'_'.$n} = 1; } else if($gr_e[1] == $win_row['wr_7']) { ${'e21_'.$n} = 7; }
if($gr_f[0] == $win_row['wr_'.$k]) { ${'f1'.$k.'_'.$n} = 1; } else if($gr_f[0] == $win_row['wr_7']) { ${'f11_'.$n} = 7; }
if($gr_f[1] == $win_row['wr_'.$k]) { ${'f2'.$k.'_'.$n} = 1; } else if($gr_f[1] == $win_row['wr_7']) { ${'f21_'.$n} = 7; }
if($gr_g[0] == $win_row['wr_'.$k]) { ${'g1'.$k.'_'.$n} = 1; } else if($gr_g[0] == $win_row['wr_7']) { ${'g11_'.$n} = 7; }
if($gr_g[1] == $win_row['wr_'.$k]) { ${'g2'.$k.'_'.$n} = 1; } else if($gr_g[1] == $win_row['wr_7']) { ${'g21_'.$n} = 7; }
if($gr_h[0] == $win_row['wr_'.$k]) { ${'h1'.$k.'_'.$n} = 1; } else if($gr_h[0] == $win_row['wr_7']) { ${'h11_'.$n} = 7; }
if($gr_h[1] == $win_row['wr_'.$k]) { ${'h2'.$k.'_'.$n} = 1; } else if($gr_h[1] == $win_row['wr_7']) { ${'h21_'.$n} = 7; }
if($gr_i[0] == $win_row['wr_'.$k]) { ${'i1'.$k.'_'.$n} = 1; } else if($gr_i[0] == $win_row['wr_7']) { ${'i11_'.$n} = 7; }
if($gr_i[1] == $win_row['wr_'.$k]) { ${'i2'.$k.'_'.$n} = 1; } else if($gr_i[1] == $win_row['wr_7']) { ${'i21_'.$n} = 7; }
if($gr_j[0] == $win_row['wr_'.$k]) { ${'j1'.$k.'_'.$n} = 1; } else if($gr_j[0] == $win_row['wr_7']) { ${'j11_'.$n} = 7; }
if($gr_j[1] == $win_row['wr_'.$k]) { ${'j2'.$k.'_'.$n} = 1; } else if($gr_j[1] == $win_row['wr_7']) { ${'j21_'.$n} = 7; }
if($gr_k[0] == $win_row['wr_'.$k]) { ${'k1'.$k.'_'.$n} = 1; } else if($gr_k[0] == $win_row['wr_7']) { ${'k11_'.$n} = 7; }
if($gr_k[1] == $win_row['wr_'.$k]) { ${'k2'.$k.'_'.$n} = 1; } else if($gr_k[1] == $win_row['wr_7']) { ${'k21_'.$n} = 7; }
if($gr_l[0] == $win_row['wr_'.$k]) { ${'l1'.$k.'_'.$n} = 1; } else if($gr_l[0] == $win_row['wr_7']) { ${'l11_'.$n} = 7; }
if($gr_l[1] == $win_row['wr_'.$k]) { ${'l2'.$k.'_'.$n} = 1; } else if($gr_l[1] == $win_row['wr_7']) { ${'l21_'.$n} = 7; }
if($gr_m[0] == $win_row['wr_'.$k]) { ${'m1'.$k.'_'.$n} = 1; } else if($gr_m[0] == $win_row['wr_7']) { ${'m11_'.$n} = 7; }
if($gr_m[1] == $win_row['wr_'.$k]) { ${'m2'.$k.'_'.$n} = 1; } else if($gr_m[1] == $win_row['wr_7']) { ${'m21_'.$n} = 7; }
if($gr_n[0] == $win_row['wr_'.$k]) { ${'n1'.$k.'_'.$n} = 1; } else if($gr_n[0] == $win_row['wr_7']) { ${'n11_'.$n} = 7; }
if($gr_n[1] == $win_row['wr_'.$k]) { ${'n2'.$k.'_'.$n} = 1; } else if($gr_n[1] == $win_row['wr_7']) { ${'n21_'.$n} = 7; }
if($gr_o[0] == $win_row['wr_'.$k]) { ${'o1'.$k.'_'.$n} = 1; } else if($gr_o[0] == $win_row['wr_7']) { ${'o11_'.$n} = 7; }
if($gr_o[1] == $win_row['wr_'.$k]) { ${'o2'.$k.'_'.$n} = 1; } else if($gr_o[1] == $win_row['wr_7']) { ${'o21_'.$n} = 7; }
if($gr_p[0] == $win_row['wr_'.$k]) { ${'p1'.$k.'_'.$n} = 1; } else if($gr_p[0] == $win_row['wr_7']) { ${'p11_'.$n} = 7; }
if($gr_p[1] == $win_row['wr_'.$k]) { ${'p2'.$k.'_'.$n} = 1; } else if($gr_p[1] == $win_row['wr_7']) { ${'p21_'.$n} = 7; }
if($gr_q[0] == $win_row['wr_'.$k]) { ${'q1'.$k.'_'.$n} = 1; } else if($gr_q[0] == $win_row['wr_7']) { ${'q11_'.$n} = 7; }
if($gr_q[1] == $win_row['wr_'.$k]) { ${'q2'.$k.'_'.$n} = 1; } else if($gr_q[1] == $win_row['wr_7']) { ${'q21_'.$n} = 7; }
if($gr_r[0] == $win_row['wr_'.$k]) { ${'r1'.$k.'_'.$n} = 1; } else if($gr_r[0] == $win_row['wr_7']) { ${'r11_'.$n} = 7; }
if($gr_r[1] == $win_row['wr_'.$k]) { ${'r2'.$k.'_'.$n} = 1; } else if($gr_r[1] == $win_row['wr_7']) { ${'r21_'.$n} = 7; }
if($gr_s[0] == $win_row['wr_'.$k]) { ${'s1'.$k.'_'.$n} = 1; } else if($gr_s[0] == $win_row['wr_7']) { ${'s11_'.$n} = 7; }
if($gr_s[1] == $win_row['wr_'.$k]) { ${'s2'.$k.'_'.$n} = 1; } else if($gr_s[1] == $win_row['wr_7']) { ${'s21_'.$n} = 7; }
if($gr_t[0] == $win_row['wr_'.$k]) { ${'t1'.$k.'_'.$n} = 1; } else if($gr_t[0] == $win_row['wr_7']) { ${'t11_'.$n} = 7; }
if($gr_t[1] == $win_row['wr_'.$k]) { ${'t2'.$k.'_'.$n} = 1; } else if($gr_t[1] == $win_row['wr_7']) { ${'t21_'.$n} = 7; }
if($gr_u[0] == $win_row['wr_'.$k]) { ${'u1'.$k.'_'.$n} = 1; } else if($gr_u[0] == $win_row['wr_7']) { ${'u11_'.$n} = 7; }
if($gr_u[1] == $win_row['wr_'.$k]) { ${'u2'.$k.'_'.$n} = 1; } else if($gr_u[1] == $win_row['wr_7']) { ${'u21_'.$n} = 7; }
if($gr_v[0] == $win_row['wr_'.$k]) { ${'v1'.$k.'_'.$n} = 1; } else if($gr_v[0] == $win_row['wr_7']) { ${'v11_'.$n} = 7; }
if($gr_v[1] == $win_row['wr_'.$k]) { ${'v2'.$k.'_'.$n} = 1; } else if($gr_v[1] == $win_row['wr_7']) { ${'v21_'.$n} = 7; }
}
for ($i=0; $i <= count($res); $i++) {
switch(${$res[$i][0].'11_'.$n}+${$res[$i][0].'12_'.$n}+${$res[$i][0].'13_'.$n}+${$res[$i][0].'14_'.$n}+${$res[$i][0].'15_'.$n}+${$res[$i][0].'16_'.$n}+
${$res[$i][0].'21_'.$n}+${$res[$i][0].'22_'.$n}+${$res[$i][0].'23_'.$n}+${$res[$i][0].'24_'.$n}+${$res[$i][0].'25_'.$n}+${$res[$i][0].'26_'.$n}+
${$res[$i][1].'11_'.$n}+${$res[$i][1].'12_'.$n}+${$res[$i][1].'13_'.$n}+${$res[$i][1].'14_'.$n}+${$res[$i][1].'15_'.$n}+${$res[$i][1].'16_'.$n}+
${$res[$i][1].'21_'.$n}+${$res[$i][1].'22_'.$n}+${$res[$i][1].'23_'.$n}+${$res[$i][1].'24_'.$n}+${$res[$i][1].'25_'.$n}+${$res[$i][1].'26_'.$n}+
${$res[$i][2].'11_'.$n}+${$res[$i][2].'12_'.$n}+${$res[$i][2].'13_'.$n}+${$res[$i][2].'14_'.$n}+${$res[$i][2].'15_'.$n}+${$res[$i][2].'16_'.$n}+
${$res[$i][2].'21_'.$n}+${$res[$i][2].'22_'.$n}+${$res[$i][2].'23_'.$n}+${$res[$i][2].'24_'.$n}+${$res[$i][2].'25_'.$n}+${$res[$i][2].'26_'.$n}
) {
case '3' : ${'comb'.$n.$i} = '5등'; break;
case '10' : ${'comb'.$n.$i} = '5등'; break;
case '4' : ${'comb'.$n.$i} = '4등'; break;
case '11' : ${'comb'.$n.$i} = '4등'; break;
case '5' : ${'comb'.$n.$i} = '3등'; break;
case '12' : ${'comb'.$n.$i} = '2등'; break;
case '6' : ${'comb'.$n.$i} = '1등'; break;
default : ${'comb'.$n.$i} = ''; break;
}
}
}
?>
<?php
//출력파트
$lottery_table = 'lottery_result';
$lottery_write_table = $g5['write_prefix'] .$lottery_table;
$sql = " select * from $lottery_write_table order by wr_num asc ";
$result = sql_query($sql);
for($n=1; $win_row=sql_fetch_array($result); $n++) {
${'comb_arr'.$n} = array();
echo $win_row['wr_8']. '회 - ';
for ($i=1; $i <= count($res); $i++) {
array_push(${'comb_arr'.$n}, ${'comb'.$n.$i});
}
sort(${'comb_arr'.$n});
${'comb_arr2_'.$n} = array_filter(${'comb_arr'.$n});
${'num'.$n} = array_count_values(${'comb_arr2_'.$n});
foreach( ${'num'.$n} as $key => $value ){
switch($key) {
case '5등' : $grade_color = 'darkgray'; break;
case '4등' : $grade_color = 'yellow'; break;
case '3등' : $grade_color = 'green'; break;
case '2등' : $grade_color = 'blue'; break;
case '1등' : $grade_color = 'red'; break;
default : $grade_color = ''; break;
}
?>
<span class="bold label bg-<?php echo $grade_color; ?>"><?php echo $key; ?></span> <?php echo $value; ?>개
<?php } ?><br />
<?php } ?>
!-->
답변 1
1540개가 작동되는건
$pool = range('a', 'v');
$len = count($pool); // $len = 22
//$res = [];
for($x=0; $x<$len; $x++) {
for($y=$x+1; $y<$len; $y++) {
for($z=$y+1; $z<$len; $z++) {
$res[] = sprintf('%s%s%s', $pool[$x], $pool[$y], $pool[$z]);
echo $pool[$x]."-".$pool[$y]."-".$pool[$z]."<br>";
}
}
}
이것으로 확인가능합니다.
아래의
for
(
$n
=1;
$win_row
=sql_fetch_array(
$result
);
$n
++) {
이 내용은 DB의 값에 따라 작동하므로
위에서 질문하신 내용은 DB를 확인해보셔야 합니다.
답변을 작성하시기 전에 로그인 해주세요.