Php 如何使5有条件只有1如果2如果1其他?
我有一个特定的条件,如下所示Php 如何使5有条件只有1如果2如果1其他?,php,Php,我有一个特定的条件,如下所示 >80 category A 71-80 category AB 51-70 category B 41-50 category BC <40 category C 但我的代码如下所示 90 = A 72 = AB 55 = B 45 = BC 10 = BC 如果允许您使用三元数,您可以这样做: if ($value > 80) { $category = 'A'; } else if ($value > 70) {
>80 category A
71-80 category AB
51-70 category B
41-50 category BC
<40 category C
但我的代码如下所示
90 = A
72 = AB
55 = B
45 = BC
10 = BC
如果允许您使用三元数,您可以这样做:
if ($value > 80) {
$category = 'A';
} else if ($value > 70) {
$category = 'AB';
} else if ($value > 50) {
$category = 'B';
} else {
$category = $value > 40 ? 'BC' : 'C';
}
@u_mulder认为同样的^^如果重点是限制关键字
If
、else
和else If
,那么可以在最后一个else中使用三元运算符
function getCat($val)
{
$cat = '';
if ($val >= 81) {
$cat = 'A';
} else if ($val >= 71 && $val <= 80) {
$cat = 'AB';
} else if ($val >= 51 && $val <= 70) {
$cat = 'B';
} else {
$cat = $val < 40 ? 'C' : 'BC';
}
return $cat;
}
函数getCat($val)
{
$cat='';
如果($val>=81){
$cat='A';
}否则,如果($val>=71&&$val=51&&$val您可以这样做:
<?php
$value = 81;
$edge_cases = ['C','A'];
$category = '';
if($value > 40 && $value <= 50){
$category = 'BC';
}else if($value > 50 && $value <= 70){
$category = 'B';
}else if($value > 70 && $value <= 80){
$category = 'AB';
}else{
$quotient = intval($value / 80);
$index = abs(intval($quotient / (($quotient - 1) | 1)));
$category = $edge_cases[$index];
}
echo $category;
这样如何,只使用一个if语句,并且您在其中一个注释中表示希望使用数组解决方案:
$categories = [
'80' => 'A',
'71' => 'AB',
'51' => 'B',
'41' => 'BC',
];
$value = "10";
$category= "C";
foreach ($categories as $minVal => $cat) {
if ($value >= $minVal) {
$category = $cat;
break;
}
}
echo $category;
抱歉-我想我完全没有抓住要点,但我想我会回答更多的娱乐问题,作为问题的一个完整的替代方案。我提出了“如果没有”的解决方案
$category = ['C', 'C', 'C', 'C', 'BC', 'B', 'B', 'AB', 'A', 'A' ];
echo $category[min(max(floor(($value-1)/10),0),9)];
我最后添加了min()
和max()
,以确保它不会在-1或101中出错
如果人们认为我的答案应该被删除,那么请告诉我,因为我没有回答原来的问题:-/这里有一种方法应该满足条件。其他的显然不是真的需要
$category = '';
if ($value > 70 && !($category .= 'A')) {
} elseif ($value > 40 && $value < 81 && !($category .='B')) {
} elseif ($value < 51 && $category .= 'C') {
} else {}
$category='';
如果($value>70&&!($category.='A')){
}elseif($value>40&&$value<81&&!($category.='B')){
}elseif($value<51&&$category.='C'){
}else{}
试试这个
if ($value < 40 ) {
$category = "C";
}else if ($value <= 50 && $value != 40) {
$category = "BC";
}else if ($value <= 70 ) {
$category = "B";
}else{
$category = $value > 80 ? "A" : "AB";
}
if($value<40){
$category=“C”;
}否则如果($value),你不能用2elseif
。要求来自何方?作业?面试问题?仅仅因为?这是代码挑战college@MalhadiJr对于=40
,答案是什么?通过这种方法,我们甚至可以减少到(如果不是这样的话
)这是我朋友的一个备选答案,他用C++编写代码,谢谢,我认为这是一个替代的解决方案。但是我想知道是否有一个解决方案使用数组来存储分类。这是我朋友的一个备选答案,他用C++在代码中编写代码,他将值除以50。然后分配R。esult到一个数组以获得类别。@MalhadiJr这就是答案。在有限范围内除法只提供两个选项0
和1
。
$category = '';
if ($value > 70 && !($category .= 'A')) {
} elseif ($value > 40 && $value < 81 && !($category .='B')) {
} elseif ($value < 51 && $category .= 'C') {
} else {}
if ($value < 40 ) {
$category = "C";
}else if ($value <= 50 && $value != 40) {
$category = "BC";
}else if ($value <= 70 ) {
$category = "B";
}else{
$category = $value > 80 ? "A" : "AB";
}