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";

这还给我:

0
0
0

但我想收到:

1
2
1

如何在函数 MIN 中跳过 0?

4

2 回答 2

15

尝试array_filter

如果未提供回调,则将删除所有等于 FALSE 的输入条目。

所以它会0为你删除。

echo min(array_filter($array1)) . "\n";
于 2012-07-09T10:28:23.383 回答
7

此外array_filter,您可以更明确地使用

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

这可以让您很容易地忽略更多值,例如

$min = min(array_diff($array1, array(0, 1)); // result = 3
于 2012-07-09T10:29:12.100 回答