簡體   English   中英

在PHP中使用條件在數組中的if語句

[英]if statement with condition in array in PHP

我有兩個數組。 第一個包含變量名稱,第二個包含浮點值和從數據類型為varchar的MySQL表中提取的條件。 現在,我想在if語句中使用這些名稱和值。 可能嗎? 讓我解釋一下代碼。

for ($i=0; $i<5; $i++) {
    if ($_POST[$names[$i]] $val[$i]) {
        echo "Do something";
    }                       
}

$ names =數組(name1,name2,name4)
$ val =數組(<121.5,<= 88.9,> 77.3)

我想在這兩者之間進行邏輯比較,並且比較運算符與值一起存儲在可以看到的數組中。 如果用if語句不可能。 請給我其他方法做。 謝謝!

我建議您用其他方式。 我知道它看起來很瘋狂,但是它將解決您的問題:)

$names = array (name1, name2, name4 );
$val = array (array('bigger',121.5), array('smaller_even',88.9),array('smaller',77.3));

for ($i=0; $i<5; $i++){
    switch ($val[$i][0]){
        case: 'bigger':
        if($name[$i]>$val[$i][1]){
           echo 'do something';
        }
        break;
    }
}

這是一個主意:

首先,在比較數組$val上使用此regexp:

preg_match('/([^\d]+)(\d+)/', $val[$i][0], $match);

現在,你必須在比較運算符$match[1]和數量來比較$match[2] 然后使用幾個if或開關檢查它是哪個比較運算符,然后使用常規的if子句。

例如:

if ($match[1] === '<=') {
    if ((int)$match[2] <= $_POST[$names[$i]]) {
        //do something
    }
} elseif ($match[1] === '>') {
    if ((int)$match[2] > $_POST[$names[$i]]) {
        //do something else
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM