2014-02-08 33 views
0

我不知道我應該如何做以下事情。我有幾個值(例如) $value1 = 2; $value2 = 3; $value4 = 0;我只需要選擇那些大於0的值。那麼你可以說用什麼方法可以做到嗎?我正在考慮數組,但是我不知道如何檢查每個值是否大於0。數值列表稍大一點,我不想爲每個值寫入if ($value1 > 0){ ...}選擇數值方法建議

回答

0

認沽值並使用array_filter。此作品 -

<?php 
    $value1 = 11; 
    $value2 = 123; 
    $value3 = 0; 
    $value4 = 34; 
    $value5 = 0; 
    $arr = array_filter(array($value1, $value2, $value3, $value4, $value5) , function($v){return $v > 0;}); 
    var_dump($arr); 
    /* 
     OUTPUT: 
     array 
      0 => int 11 
      1 => int 123 
      3 => int 34 
    */ 
?> 
+0

謝謝!這工作正常。 – user2305560

+0

很高興幫助。如果此答案或任何其他人解決了您的問題,請將其標記爲已接受 – Kamehameha

0

這是一個函數你..你可以這樣調用它biggerthanzero($值1,$值2,...等)

function biggerthanzero() 
{ 
    // if no arguments are given, return an empty array 
if (func_num_args() == 0) { 
    return array(); 
} 
$results = array(); 
// func_get_args() returns the parameters you passed as an array 
foreach (func_get_args() as $arg){ 
    if ($arg > 0){ 
     $results[] = $arg; 
    } 
} 
return $results; 
} 
0

首先 - 我認爲你應該使用一個數組而不是許多單獨的變量。


......但如果你的變量命名爲「$ valueX」,其中X變化從1到9,你可以用這樣的事情重複所有的人:在一個數組

for($i=1; $i<10; $i++) { 
    $variable_name= "value".$i; 
    if ($$variable_name > 0) { ... } 
}