2 回答

TA貢獻(xiàn)1942條經(jīng)驗(yàn) 獲得超3個(gè)贊
由于計(jì)數(shù)將始終加起來為 4,因此您無需比較整個(gè)數(shù)組,只需獲取計(jì)數(shù)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
}
當(dāng)計(jì)數(shù)為時(shí), @before會(huì)$counts['x']抑制警告(因?yàn)閿?shù)組中0不會(huì)有元素);x然后我們進(jìn)入這個(gè)default:案子。

TA貢獻(xiàn)1943條經(jīng)驗(yàn) 獲得超7個(gè)贊
您錯(cuò)誤地使用了 switch 語句。
Switch 表示,基于 switch() 中的值,根據(jù)其值(case 語句)執(zhí)行一些代碼。
所以你所說的:switch(isset($_POST['round1'])) 是基于現(xiàn)有的 $_POST['round1'] 的價(jià)值,做點(diǎn)什么。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 是否似乎對(duì)您的代碼沒有任何影響,但如果它很重要,您可以執(zhí)行以下操作:
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 關(guān)注
- 114 瀏覽
添加回答
舉報(bào)