「これはヤバかったな」という遅刻エピソード

PHPで10連ガチャを作成したいのですが
どのように組めばいいのかわかりません。
現在、以下のとおりプログラムを作成しておりまして
ここからどのように作成していけばいいのかわからず
悩んでいます。
PHPに詳しい方、ご解答していただければ幸いです。
<?php
//配列の中身
$gacha = array(
'C' => 20,
'UC' => 40,
'R' => 60,
'SR' => 80,
'UR' => 100,
);
//$keyをランダムに表示させる
$rand = mt_rand(1,100);
foreach($gacha as $key =>$val){
if($rand <= $val){
echo $key;
break;
}
}

A 回答 (2件)

なるほど、ではこんな感じでどうでしょう?



<?PHP
$gacha = array_fill(0,20,'C');
$gacha = array_merge($gacha,array_fill(20,20,'UC'));
$gacha = array_merge($gacha,array_fill(40,20,'R'));
$gacha = array_merge($gacha,array_fill(60,20,'SR'));
$gacha = array_merge($gacha,array_fill(80,20,'UR'));
shuffle($gacha);
for($i=0;$i<10;$i++){
print $gacha[$i]."<br>";
}
?>
    • good
    • 1
この回答へのお礼

yambejp様
誠にありがとうございます。
わかりやすくて非常に助かりました。

また、求めていた結果を出力することが出来ましたので
あなた様をベストアンサーとさせていただきます。

お礼日時:2016/08/29 14:43

仕様がまったく見えてきませんが、100個のデータがあると想定するなら


100個データをもった配列をつくってシャッフルし、
1個でも10個でもすきなだけ前から順番にとりだせばよいのでは?
    • good
    • 0
この回答へのお礼

ご回答頂きましてありがとうございます。
仕様は、キーをC・UC・R・SR・URとして、キーに格納する値が20間隔とします。rand関数によって88が出た場合はURが排出されるという形でございます。

shuffle関数を用いて10回回すとい鵜事ですね、やってみます。

お礼日時:2016/08/29 13:24

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報