2012-01-01 9 views
2

PHPで簡単なyahtzeeスクリプトを作成していますが、最後に5つのダイスをチェックして最終的な結果を得ました。 配列値のインスタンスを扱う

辺が配列に格納されている5つのダイス

、例えば $dice (2,5,2,7,8)

Iだない配列での作業の経験、しかし、それぞれの数を比較する2同一のインスタンスを見つけたいとする簡単な方法があること、 3同じ、すべて同じなど?

array_search()

答えて

3

array_count_values()これは注目すべき機能です。配列内の値のインスタンス数を数えます。

例:

$dice = array(2,5,2,7,7); 
$count = array_count_values($dice); 

if($n = array_keys($count, 2)) 
{ 
    // 2 of a kind 
    // $n = array(2, 7) 
} 

if(array_keys($count, 4)) 
{ 
    // 4 of a kind 
} 

if(array_keys($count, 2) && array_keys($count, 3)) 
{ 
    // Full House 
} 
+0

おかげで、種類の複数の2がありますどのような場合には、3? – user1022585

+0

@ user1022585 - array_count_values()がどのように動作し、複数の種類の質問に対して回答する必要がありますか –

+0

@ user1022585:私はあなたに役立つ回答を更新しました。 –

1

ちょうどそれらを数えます。

for ($i=0; $i<count($dice); $i++) 
     $counter[$dice[$i]]++; 
0

使用:種類の

var_dump(array_count_values($array)); 
関連する問題