■背景
プログラミング言語(PHP)を独学し始めて四週間に入りました。
サイコロの出目の回数を数えています。
質問の仕方に不備がございましたら、申し訳ございません。
■実現したいこと
このように(以下)似たような式が続いているので、簡潔に書きたい(もし方法があれば)
<?php $count1=0; $count2=0; $count3=0; $count4=0; $count5=0; $count6=0; for($i=1;$i<=1000;$i++){ $num=mt_rand(1,6); $count1+=substr_count($num,"1"); $count2+=substr_count($num,"2"); $count3+=substr_count($num,"3"); $count4+=substr_count($num,"4"); $count5+=substr_count($num,"5"); $count6+=substr_count($num,"6"); } echo $count1."<br>\n"; echo $count2."<br>\n"; echo $count3."<br>\n"; echo $count4."<br>\n"; echo $count5."<br>\n"; echo $count6."<br>\n"; ?>
■試したこと、結果
・sprintf使用(for文内の式)
$num[]=array(1,2,3,4,5); $format='$count."%d"+=substr_count($num,"%d")'; sprintf($format,$num[0]); ・・・ sprintf($format,$num[6]);
ここでは省略しましたが、$num[0]~$num[6]すべて入力した
エラーがでてしまい作動せず
・関数化(for文内の式)
function countnum($countnum★){ $countnum★+=substr_count($num,"☆"); }
★と☆の部分に同じ数字を入れたいのですが、関数ごとの代入しかできず、最後の☆は変数でなく数字のみなので、この先進めず
・変数設定
$count1,$count2,$count3・・・$count6=0;
真ん中省略しましたが、$count1から$count6まですべて打ち込み、カンマで繋いだ
エラー表示で作動せず
■環境
windows xampp3.2.2 Atom
一行の式ならわざわざ簡略化せずとも良いかもしれませんが、
より数字が大きくなったときに対処できるよう調べております。
何か良い解決策ありましたらご教授ください。
特に方法がない場合もその旨一言いただけますと幸いです。
回答4件
あなたの回答
tips
プレビュー