2009-05-26 6 views
8

Questa è una possibile funzione?

ho bisogno di controllare se una variabile è esistente in una lista di quelli che ho bisogno di controllare contro e anche che cond2 vale esempio

if($row['name'] == ("1" || "2" || "3") && $Cond2){ 
    doThis(); 
} 

Non funziona per me e per tutto quello che ho cambiato nella copia pasta era la mia lista ei nomi delle variabili

risposta

16
if(in_array($row['name'], array('1', '2', '3')) && $Cond2) { 
    doThis(); 
} 

di PHP in_array() Docs: http://us.php.net/manual/en/function.in-array.php

+0

Grazie. Accettato come era il primo – Supernovah

+5

Come nota secondaria minore, a seconda di quanto è grande il tuo "array di eccezioni", potresti voler mettere $ Cond2 come primo elemento dell'espressione booleana (assumendo che sia già atomico e non una sorta di chiamata di funzione potenzialmente costosa). – n3rd

+0

Buon punto, n3rd. – ceejayoz

0
$name = $row['name']; 
if (($name == "1" || $name == "2" || $name == "3") && $cond2) 
{ 
    doThis(); 
} 
+1

che è una possibilità, ma gli altri sono più intelligenti – Supernovah

+1

Sono d'accordo, in_array è un modo migliore per farlo. –

3

Stai cercando la funzione in_array().

if (in_array($row['name'], array(1, 2, 3)) && $cond2) { 
    #... 
1

uso in_array funzione se (in_array ($ row [ 'name'], un array (1,2,3)) & & $ cond2) { fare ...}

3
if (in_array($name , array('Alice' , 'Bob' , 'Charlie')) && $condition2) { 
/* */ 
} 
0

ho qualcosa di più semplice di quello, se è ancora possibile ...

if(strpos("1,2,3", $row['name']) !== false) && $Cond2) { 
    doThis(); 
} 
Problemi correlati