PHP - Duda con in_array()

   
Vista:

Duda con in_array()

Publicado por Luis (2 intervenciones) el 07/02/2015 19:39:28
1
2
3
4
5
6
7
8
9
10
11
12
$numeros = array('cero','uno','dos', 'cero' => 0,'uno' => 1,'dos' => 2);
 
    echo '3 tipo indiferente => ',
         var_dump(in_array(3,$numeros)),'<br />';
    echo '\'1\' mismo tipo => ',
         var_dump(in_array('1',$numeros,TRUE)),'<br />';
    echo '\'uno\' tipo indiferente => ',
         var_dump(in_array('uno',$numeros)),'<br />';
    echo '\'tres\' tipo indiferente => <b>',
         var_dump(in_array('tres',$numeros)),'</b><br />'; // linea  10
    echo '\'tres\' mismo tipo => ',
         var_dump(in_array('tres',$numeros,TRUE)),'<br />';

tengo este codigo, pregunto: la sentencia linea 10, deberia dar FALSE, porque no existe ese valor('tres') pero da TRUE porque, si alguien me explica por favor?

PD: si coloco en la linea 10 in_array('cualquier cadena',$numeros), me sale TRUE tambien.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Duda con in_array()

Publicado por Pedro (6 intervenciones) el 09/02/2015 13:32:18
Buenas Luis,

Para concatenar debes hacerlo con el punto (.), tras hacerlo observarás que funciona correctamente.

Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Duda con in_array()

Publicado por Luis (2 intervenciones) el 09/02/2015 19:35:12
Ya averigue porque, sale TRUE.

En realidad, en la búsqueda de mismo tipo, la función funciona correctamente (no hay una cadena ’tres’ en la tabla). En la búsqueda en la que el tipo es indiferente, la cadena se procesa como si estuviera convertida en entero (’tres’ convertida en entero da 0) y la búsqueda se efectúa sobre el resultado de esta conversión (y 0 sí está presente en la tabla)

asi, ese 'tres' o cualquier cadena siempre dara TRUE, porque lo convierte a entero(a cero) y 0 esta en $numeros, por eso da TRUE, si 0 no estaria en $numeros, daria FALSE.

Gracias a los que me respondieron!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de xve

Duda con in_array()

Publicado por xve (5519 intervenciones) el 09/02/2015 20:17:52
Gracias por comentarlo Luis!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar