2014-05-09 29 views
8

Cách lấy giá trị tối thiểu từ một mảng chứa một số giá trị null trong PHP. Tôi có một mảng như thế nàyNhận giá trị tối thiểu từ một mảng có chứa giá trị null

array(10,20,null,60) 

Như mảng này chứa null để php min chức năng cho 0 là giá trị nhỏ nhất, nhưng tôi cần ví dụ 10 là tối thiểu. Ai giúp tôi với?

+1

Lọc mảng trước khi sử dụng 'min()': '$ nhỏ nhất = phút (mảng_filter ($ mảng, hàm ($ v) {return! Is_null ($ v); })); ' –

+1

' mảng_filter' cũng sẽ loại bỏ số không, tôi nghĩ rằng –

+0

Thực ra, nó sẽ loại bỏ bất kỳ thứ gì đánh giá thành 'false', vì vậy http://php.net/manual/ro/language.types.boolean.php#language .types.boolean.casting –

Trả lời

10

Sử dụng array_diff cho loại trừ giá trị null và sau khi sử dụng quá trình này tối thiểu ..

$r = array_diff(array(10,20,null,60), array(null)); 
min($r); 
2

Sử dụng array_filter() như là một wrapper với strlen như gọi lại ..

echo min(array_filter($arr,'strlen')); 

Demonstration

+0

câu trả lời của tôi là gần như giống nhau vì vậy tôi đã xóa tôi :) –

+0

@ AwladLiton, Không giống nhau, thực sự, bạn thậm chí sẽ lọc zeroes. Hey btw Tôi không phải là downvoter. –

+0

vâng tôi đã thử nghiệm. –

0

Hãy thử

function min($array){ 
     $min = 1000;//max value you expect 
     for($i=0; $i<sizeof($array); $i++){ 

      if($array[$i] < $min && $array[$i] != null) 
        $min = $array[$i]; 

     } 
     return $min; 
    } 
Các vấn đề liên quan