2017-10-08 29 views
1

有人可以幫我解決我的問題在PHP構建動態條件...動態條件

我有一個數組

$condition = array('FADR1','FADR2','FADR3','SADR1','SADR2','SADR3'); 

我已經嘗試了本代碼,但結果不喜歡我要

for ($i=0; $i < count($condition) ; $i++) { 
     if($keydt == $condition[$i]){ 
       $separator = ''; 
     }else{ 
       $separator = '|'; 
     } 
} 

我要讓陣列變成這個樣子內環

if($keydt == 'FADR1' or $keydt == 'FADR2' or $keydt == 'FADR3' or $keydt == 'SADR1' or $keydt == 'SADR2' or $keydt == 'SADR3'){ 
    $separator = ''; 
}else{ 
    $separator = '|'; 
} 

回答

2

您可以使用in_array()來檢查數組內是否存在值。

if (in_array($keydt, $condition)) { 
    $separator = ''; 
} else { 
    $separator = '|'; 
} 
+0

https://eval.in/89008 - 永遠不要這樣做!對in_array總是使用嚴格模式 - 有關瘋狂狗屎in_array在非嚴格模式下的更多示例,請參閱https://www.reddit.com/r/lolphp/comments/1v7ek6/in_which_in_array_does_crazy_stuff/ – hanshenrik

1

你可以嘗試使用in_array()功能,例如:

for ($i=0; $i < count($condition) ; $i++) { 
    if (in_array($condition[$i], array('FADR1', 'FADR2', 'FADR3', 'SADR1', 'SADR2', 'SADR3'), true)) { 
     $separator = ''; 
    } else { 
     $separator = '|'; 
    } 
} 

使用的foreach另一個例子......

foreach ($condition as $value) { 
    if (in_array($value, array('FADR1', 'FADR2', 'FADR3', 'SADR1', 'SADR2', 'SADR3'), true)) { 
     $separator = ''; 
    } else { 
     $separator = '|'; 
    } 
} 

我希望能幫到你。

問候。

+1

https://eval.in/89008 - 永遠不要這樣做!總是使用in_array的嚴格模式 - 更多瘋狗屎in_array在非嚴格模式下的示例,請參閱https://www.reddit.com/r/lolphp/comments/1v7ek6/in_which_in_array_does_crazy_stuff/ – hanshenrik

+0

感謝您的代碼幫助我解決了我的問題 –