[PHP] Select variable closest to 0? show me

I have some code which contains two variables.

How can I check which one is closest to 0? My variables can be negative and positive hence why i need it to be 0 and work whatever the number is.

Could you show me an example of the code.
thanks
LVL 5
georgecooldudeAsked:
Who is Participating?

Improve company productivity with a Business Account.Sign Up

x
 
DaveyEssConnect With a Mentor Commented:
You need to use the abs function in php

The following code gives an example of what to do.

<?php
$val1 = 7;
$val2 = -5;

echo "closer to zero ";

if (abs($val1) > abs($val2)) {
   echo $val2;
}
else {
   echo $val1;
}
?>
0
 
georgecooldudeAuthor Commented:
DaveyEss,

I just tryed that but it came up with my postive value closest to 0 when infact I had a negative value closer.


3
2
1
0 - This being the center point
-1
-2
-3

Any ideas how i can do that? Maybe I need to take both values and divde by one and then check which is closest to 0? This would then work with your above code? Am I correct in thinking this?

If so could you show me how i could do that?
0
 
DaveyEssCommented:
What are the positive and negative values that didn't work?
0
What Kind of Coding Program is Right for You?

There are many ways to learn to code these days. From coding bootcamps like Flatiron School to online courses to totally free beginner resources. The best way to learn to code depends on many factors, but the most important one is you. See what course is best for you.

 
georgecooldudeAuthor Commented:
They were

-22200
 24600

and it returned the result of 24600
0
 
DaveyEssCommented:
On my test, the following code returns -22200.  Does yours do that?  I have saved the file as a php web page (test.php) and then executed it in the browser.

The output I get is "closer to zero -22200"


<?php
$val1 = 24600;
$val2 = -22200;

echo "closer to zero ";

if (abs($val1) > abs($val2)) {
   echo $val2;
}
else {
   echo $val1;
}
?>
0
 
Daniel_IankovCommented:
Well the above statement should work, but if you say that the abs function is not working i suppose that
<?php
$val 1 = -3;
$val 2 = 5;

if($val1*$val2>0){  //same allinment
      if(($val1-$val2)*$val1 > 0){
           echo $val2;
      } else {
           echo $val 1;
      }

} else {
     if (($val1+$val2)*$val1 >0){
         echo $val2;
     } else {
         echo $val1;
     }
}  
?>
0
 
georgecooldudeAuthor Commented:
My mistake.

I had assigned a variable two values by mistake in an include and it was making the figure larger than it should have been.

Thanks for your help.

And thanks Daniel :-) I only noticed your reply after I refreshed the page when I awarded the point.
0
 
Daniel_IankovCommented:
NP:)
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.