[英]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.