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 关注
- 87 浏览
添加回答
举报