2009-05-26 7 views
8

¿Es esta una función posible?

tengo que comprobar si una variable es existente en una lista de los que necesito para comprobar en contra y también que COND2 es cierto por ejemplo

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

No está funcionando para mí y todo lo que ha cambiado en la copia pasta era mi lista y los nombres de las variables

Respuesta

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

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

+0

Gracias. Aceptado como fue el primero – Supernovah

+5

Como nota secundaria, dependiendo de qué tan grande sea su "array de excepciones", es posible que desee poner $ Cond2 como el primer elemento de la expresión booleana (suponiendo que ya sea atómico y no algún tipo de llamada de función potencialmente costosa). – n3rd

+0

Buen punto, n3rd. – ceejayoz

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

que es una posibilidad, pero los otros son más inteligentes – Supernovah

+1

Acepto, in_array es una mejor manera de hacer esto. –

3

Está buscando la función in_array().

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

uso in_array función de si (in_array ($ fila [ 'nombre'], array (1,2,3)) & & $ COND2) { hacer ... }

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

tengo algo más simple que eso, si todavía es posible ...

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