Get the MIN value from an array without 0

$array1 = array(0,1,3,0);
$array2 = array(2,0,3,2);
$array3 = array(0,4,5,1);

echo min($array1) . "\n";
echo min($array2) . "\n";
echo min($array3) . "\n";

this will return me:

0
0
0

but I want to receive:

1
2
1

How to skip 0 in MIN function?

+5
source share
2 answers

Try array_filter :

If the callback does not return, all input entries equal to FALSE will be deleted.

to remove 0for you.

echo min(array_filter($array1)) . "\n";
+13
source

In addition to array_filteryou can be more explicit with

$min = min(array_diff($array1, array(0));    // result = 1

This can allow you to ignore more values ​​very easily, for example.

$min = min(array_diff($array1, array(0, 1)); // result = 3
+7
source

All Articles