php比较值,如果不是

问题描述

| 有两个值
$a
$b
。我需要判断,
$a
的大小不是b的3倍,
$b
的大小不是
$a
的3倍,ѭ5不是。 解释: 如果
$a
= 5,
$b
= 1,那么
$b
* 3 = 3,
$b
* 3 <
$a
,则回显\'nothing \'; 如果
$a
= 5,
$b
= 2则
$b
* 3 = 6,
$b
* 3>
$a
,然后回显
$a.\'&nbsp;and&nbsp;\'.$b;//5 and 6
如果
$b
= 5,
$a
= 1,那么
$a
* 3 = 3,
$a
* 3 <
$b
,则回显\'nothing \'; 如果
$b
= 5,
$a
= 2则
$a
* 3 = 6,
$a
* 3>
$b
,然后回显
$a.\'&nbsp;and&nbsp;\'.$b;//6 and 5
我的代码之一:
$a=\'5\';
$b=\'1\';
if ((!($a>=($b*3))) or (!($b>=($a*3)))){
    echo $a.\'&nbsp;and&nbsp;\'.$b; //this may be echo \'nothing\'
}else{
  echo \'nothing\';
}
    

解决方法

从您的示例中,如果值非常不同,您似乎想打印\'nothing \',但是如果值很接近(在3倍以内),则可以打印这些值。 您只需要修复测试行中的逻辑即可: 如果($ a <$ b * 3 && $ b <$ a * 3){     ,将
$a[0]
$a[1]
$b[0]
和and32ѭ分别替换为
$a
$a
$b
$b
。     ,这是您要问的吗? 函数checkAandB($ a,$ b) { if($ a == 0 || $ b == 0) 返回true; 否则,如果($ a / $ b> = 3 || $ b / $ a> = 3) 返回true; 其他 返回假 }     ,
//if $a = 5,$b=1 so $b*3 = 3,is still smaller than $a,then echo \'nothing\';
if ($a > $b) && ($a > $b*3) { echo \'nothing\'; }

//if $a = 5,$b=2 so $b*3 = 6,is bigger than $a,then echo $a.\'&nbsp;and&nbsp;\'.$b;//5 and 6
if ($a > $b) && ($a < $b*3) { echo $a . \' and \' . $b; }

//if $b = 5,$a=1 so $a*3 = 3,is still smaller than $b,then echo \'nothing\';
if ($b > $a) && ($b > $a*3) { echo \'nothing\'; }

//if $b = 5,$a=2 so $a*3 = 6,is bigger than $b,then echo $a.\'&nbsp;and&nbsp;\'.$b;//6 and 5
if ($b > $a) && ($b < $a*3) { echo $a . \' and \' . $b; }
如果$ a == $ b怎么办?     ,我会比这简单得多。我喜欢一直跟随KISS。 如果一个人需要5秒钟以上的时间来阅读和理解我的台词,我会报废。 我会快速检查一下是大还是小,然后检查它们是否大3倍。也许不如您的“效率”高。但嗯:)。
function checkAandB($a,$b){
    if $a >= $b             //I assumed that if equal then it doesn\'t matter
         $smaller = $b;
         $bigger = $a
     else
         $smaller = $a;     //fixed a typo in here
         $bigger = $b;
    if $smaller < (3 * $bigger )
         do nothing
    else 
        echo $a and $b
它是伪代码:)转换为您适合的语言。     ,
function compareAB($a,$b) {
  return ($a < ($b * 3)) && ($b < ($a * 3)) ? \"$a and $b\" : \"nothing\";
  }

echo compareAB(5,1); // nothing
echo compareAB(5,2); // 5 and 2