2017-11-26 11 views
-1

2番目の配列内の2番目の配列内を検索し、一致する場合はcssで色を変更して一致とマークする必要がある乱数の配列が2つあります。それは宝くじ番号チェッカーのように考えてください。2列以内の検索結果が異なる色で出力される

私は長く描いていますが、コーディングを短縮する方法があるかどうかは疑問です。

$white_balls = range(1, 70); 
    shuffle($white_balls); 
    $white_balls = array_slice($white_balls, 0, 5); 

    $five_ball = range(1, 70); 
    shuffle($five_ball); 
    $five_ball = array_slice($five_ball, 0, 5); 

    if(in_array($five_ball[0], $white_balls)) { 
     echo '<span style="color:red;">'.$five_ball[0].'</span>, '; 
    }else { echo $five_ball[0].", "; 
     } 
    if(in_array($five_ball[1], $white_balls)) { 
     echo '<span style="color:red;">'.$five_ball[1].'</span>, '; 
    }else { echo $five_ball[1].", "; 
     } 
    if(in_array($five_ball[2], $white_balls)) { 
     echo '<span style="color:red;">'.$five_ball[2].'</span>, '; 
    }else { echo $five_ball[2].", "; 
      } 
    if(in_array($five_ball[3], $white_balls)) { 
     echo '<span style="color:red;">'.$five_ball[3].'</span>, '; 
    }else { echo $five_ball[3].", "; 
     } 
    if(in_array($five_ball[4], $white_balls)) { 
     echo '<span style="color:red;">'.$five_ball[4].'</span>, '; 
    }else { echo $five_ball[4]." - "; 
     } 
+1

1つのオプションは、にある[オーバーマップ](https://eval.in/907896)あなたの選択肢は代わりのif/else文を繰り返し - 'foreach'を使うことができます –

+0

代わりに[Code Review](https://codereview.stackexchange.com)に投稿してください。 –

+0

@DarraghEnrightあなたのコードは大部分は機能しますが、 「勝った数字」のリスト残念ながら、私はなぜあなたのコードを理解していないのか分かりません。私はそれが研究時間だと思います....私はそれを手に入れよう! –

答えて

1
<?php 
function draw_balls($draw_count, $total_balls) { 
    $balls = range(1, $total_balls); 
    shuffle($balls); 

    return array_slice($balls, 0, $draw_count); 
} 

$one = draw_balls(5, 10); 
$two = draw_balls(5, 10); 

foreach($two as $num) 
    $out[] = in_array($num, $one) 
     ? '<span style="color:red;">' . $num . '</span>' 
     : $num; 

print implode(', ', $out); 

さらに:あなたのコードを短くする

$winning_balls = array_intersect($two, $one); 

printf('Summary: %d out of %d balls are winners.', 
    count($winning_balls), 
    count($two) 
); 
関連する問題