Foros del Web » Programando para Internet » PHP »

In_array() en arrays asociativos

Estas en el tema de In_array() en arrays asociativos en el foro de PHP en Foros del Web. ¡Hola! Ya hace mucho que no paso por aquí, pero vengo con un problema que no consigo solucionar. Ya he buscado en Google y en ...
  #1 (permalink)  
Antiguo 14/06/2008, 04:30
Avatar de Raulmmmm  
Fecha de Ingreso: marzo-2007
Ubicación: En otro lugar que tú
Mensajes: 1.549
Antigüedad: 17 años, 8 meses
Puntos: 36
In_array() en arrays asociativos

¡Hola! Ya hace mucho que no paso por aquí, pero vengo con un problema que no consigo solucionar. Ya he buscado en Google y en el foro, pero no lo consigo.

Bueno, el caso es que tengo un array asociativo, y quiero comprobar si está "principal", pero no funciona:
Código PHP:
<?php
$aposibilidades 
= array('principal' => 'Index''blog' => 'Blog');
$pagina 'principal';
if(
in_array($pagina$aposibilidades)){
echo 
'Está';
}
?>
En cambio si pongo un array normal sí que funciona:
Código PHP:
<?php
$aposibilidades 
= array('principal''blog');
$pagina 'principal';
if(
in_array($pagina$aposibilidades)){
echo 
'Está';
}
?>
¿Qué forma hay de solucionarlo?
  #2 (permalink)  
Antiguo 14/06/2008, 05:26
Avatar de almarin  
Fecha de Ingreso: junio-2008
Mensajes: 44
Antigüedad: 16 años, 5 meses
Puntos: 4
Respuesta: In_array() en arrays asociativos

Eso te pasa porque in_array busca en los valores del array, no en las claves (keys). Utiliza array_key_exists:

Código PHP:
<?php
$aposibilidades 
= array('principal' => 'Index''blog' => 'Blog');
$pagina 'principal';
if(
array_key_exists($pagina$aposibilidades)){
echo 
'Está';
}
?>
Saludos
  #3 (permalink)  
Antiguo 14/06/2008, 08:56
Avatar de Raulmmmm  
Fecha de Ingreso: marzo-2007
Ubicación: En otro lugar que tú
Mensajes: 1.549
Antigüedad: 17 años, 8 meses
Puntos: 36
Respuesta: In_array() en arrays asociativos

¡Muchas gracias, almarin ! Estaba haciendo una web modular y este era el último problema a solucionar. ¡Ahora ya está terminada!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:02.