Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

min function that ignores negative values in php

Tags:

php

min

I have three numbers:

$a = 1
$b = 5
$c = 8

I want to find the minimum and I used the PHP min function for that. In this case it will give 1.

But if there is a negative number, like

$a = - 4
$b = 3
$c = 9

now the PHP min() should give $b and not $a, as I just want to compare positive values, which are $b and $c. I want to ignore the negative number.

Is there any way in PHP? I thought I will check if the value is negative or positive and then use min, but I couldn't think of a way how I can pass only the positive values to min().

Or should I just see if it's negative and then make it 0, then do something else?

like image 523
JDesigns Avatar asked May 10 '26 16:05

JDesigns


1 Answers

You should simply filter our the negative values first.

This is done easily if you have all of them in an array, e.g.

$a = - 4;
$b = 3;
$c = 9;

$values = array($a, $b, $c);
$values = array_filter($values, function($v) { return $v >= 0; });
$min = min($values);

print_r($min);

The above example uses an anonymous function so it only works in PHP >= 5.3, but you can do the same in earlier versions with

$values = array_filter($values, create_function('$v', 'return $v >= 0;'));

See it in action.

like image 104
Jon Avatar answered May 13 '26 06:05

Jon



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!