(PHP 4, PHP 5, PHP 7, PHP 8)
min —Find lowest value
Alternative signature (not supported with named arguments):
If the first and only parameter is an array,min() returns the lowest value in that array. If at least two parameters are provided,min() returns the smallest of these values.
Note:
Values of different types will be compared using the standard comparison rules. For instance, a non-numericstring will be compared to anint as though it were
0
, but multiple non-numericstring values will be compared alphanumerically. The actual value returned will be of the original type with no conversion applied.
Be careful when passing arguments of different types becausemin() can produce unpredictable results.
value
Anycomparable value.
values
Anycomparable values.
value_array
An array containing the values.
min() returns the parameter value considered "lowest" according to standard comparisons. If multiple values of different types evaluate as equal (e.g.0
and'abc'
) the first provided to the function will be returned.
If an empty array is passed,min() throws aValueError.
Version | Description |
---|---|
8.0.0 | min() throws aValueError on failure now; previously,false was returned and anE_WARNING error was emitted. |
8.0.0 | As string to number comparisons were changed,min() no longer returns a different value based on the argument order in those cases. |
Example #1 Example uses ofmin()
<?php
echomin(2,3,1,6,7),PHP_EOL;// 1
echomin(array(2,4,5)),PHP_EOL;// 2
// Here we are comparing -1 < 0, so -1 is the lowest value
echomin('hello', -1),PHP_EOL;// -1
// With multiple arrays of different lengths, min returns the shortest
$val=min(array(2,2,2), array(1,1,1,1));// array(2, 2, 2)
var_dump($val);
// Multiple arrays of the same length are compared from left to right
// so in our example: 2 == 2, but 4 < 5
$val=min(array(2,4,8), array(2,5,1));// array(2, 4, 8)
var_dump($val);
// If both an array and non-array are given, the array is never returned
// as comparisons treat arrays as greater than any other value
$val=min('string', array(2,5,7),42);// string
var_dump($val);
// If one argument is NULL or a boolean, it will be compared against
// other values using the rules FALSE < TRUE and NULL == FALSE regardless of the
// other types involved
// In the below examples, both -10 and 10 are treated as TRUE in the comparison
$val=min(-10,FALSE,10);// FALSE
var_dump($val);
$val=min(-10,NULL,10);// NULL
var_dump($val);
// 0, on the other hand, is treated as FALSE, so is "lower than" TRUE
$val=min(0,TRUE);// 0
var_dump($val);
?>
min() (and max()) on DateTime objects compares them like dates (with timezone info) and returns DateTime object.
<?php
$dt1= newDateTime('2014-05-07 18:53', newDateTimeZone('Europe/Kiev'));
$dt2= newDateTime('2014-05-07 16:53', newDateTimeZone('UTC'));
echomax($dt1,$dt2)->format(DateTime::RFC3339) .PHP_EOL;// 2014-05-07T16:53:00+00:00
echomin($dt1,$dt2)->format(DateTime::RFC3339) .PHP_EOL;// 2014-05-07T18:53:00+03:00
?>
It works at least 5.3.3-7+squeeze17