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 に答える