2 回答

TA貢獻1942條經驗 獲得超3個贊
由于計數將始終加起來為 4,因此您無需比較整個數組,只需獲取計數x并在switch語句中使用它即可。
$counts = array_count_values($array);
if (isset($_POST['round1'])) {
switch (@$counts['x']) {
case 3:
// do something for x=3 y=1
break;
case 2:
// do something for x=2 y=2
break;
case 1:
// do something for x=1 y=3
break;
default:
// do something for x=0 y=4
}
當計數為時, @before會$counts['x']抑制警告(因為數組中0不會有元素);x然后我們進入這個default:案子。

TA貢獻1943條經驗 獲得超7個贊
您錯誤地使用了 switch 語句。
Switch 表示,基于 switch() 中的值,根據其值(case 語句)執行一些代碼。
所以你所說的:switch(isset($_POST['round1'])) 是基于現有的 $_POST['round1'] 的價值,做點什么。isset 返回真/假。如果 $_POST['round1'] 存在,它將返回 true,否則將返回 false。
你不想在這里使用 switch 語句,你想使用 if / else。
if (array_count_values($array) == ( [x] => 3 [y] => 1 ) {
//do something
}
elseif (array_count_values($array) == ( [x] => 2 [y] => 2 ) {
//do something
}
$_POST['round1'] isset 是否似乎對您的代碼沒有任何影響,但如果它很重要,您可以執行以下操作:
if (isset($_POST['round1'])) {
if (array_count_values($array) == ( [x] => 3 [y] => 1 ) {
//do something
}
elseif (array_count_values($array) == ( [x] => 2 [y] => 2 ) {
//do something
}
}
else {
//handle $_POST['round1'] not being set
}
- 2 回答
- 0 關注
- 108 瀏覽
添加回答
舉報