从数组中获取最小值,但排除0值。

6

$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 return me:

0
0
0

but i want receive:

1
2
1

How to skip 0 in function MIN?

2个回答

15

尝试使用array_filter

如果没有提供回调函数,所有等同于 FALSE 的输入项都将被删除。

所以它会为您删除0

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

8
除了array_filter之外,您还可以更明确地使用:
$min = min(array_diff($array1, array(0));    // result = 1

这可以让你更轻松地忽略更多的值,例如:
$min = min(array_diff($array1, array(0, 1)); // result = 3

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接