Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/02/2010, 10:09
juan007
 
Fecha de Ingreso: marzo-2004
Ubicación: Chile
Mensajes: 382
Antigüedad: 20 años, 1 mes
Puntos: 0
array_key_exists ó in_array

Quiero empezar agradeciendo su ayuda o sugerencias.

Les comento que necesito saber si dentro de un arreglo asociativo esta cierto dato, el arreglo es de esta forma.

events(14, dia del amor, Cena bailable casa camino playa 22 hrs)->indice 0
events(24, Reunion con pepito, sala gerencia)->indice 1
events(28, Club de tobi, salida a local a reunion social)->indice 2

Mi idea es buscar el dato de los dias y luego asgnarle una clase css para pintar el dia del calendario donde hay eventos ...entonces podria decir que para el mes de febrero los dias con eventos son 14 24 y 28.

Ahora esto averigue:
in_array:
En PHP disponemos de la función in_array la cual nos permite verificar si un valor X se encuentra en un arreglo X , si se encuentra,la función nos retornara true al punto de invocación , de lo contrario nos retornara false.

array_key_exists:
PHP nos permite verificar si una clave existe dentro un arreglo , para ellos disponemos de la función array_key_exists que nos devuelve true si la clave fue localizada dentro de dicha estructura, de lo contrario nos devuelve false.


Ahora hice las siguientes pruebas:
Código PHP:
 if (in_array($day$events)){
    
//adding the date_has_event class to the <td> and close it
    
echo ' class="date_has_event"> '.$day
Bueno esto no me hizo nada no me pinta los dias ni nada.

Código PHP:
 if(array_key_exists("day",$events)){
    
//adding the date_has_event class to the <td> and close it
    
echo ' class="date_has_event"> '.$day
De esta forma tampoco no me hace nada.....ahora si les saco las comillas osea asi if(array_key_exists(day,$events)){ ...
me arroja este error:
Notice: Use of undefined constant day - assumed 'day' in C:\wamp\www\portal\calendario.php on line 146 y me pinta todos los dias.

Y ya nose que como hacerlo para que me encuentre el dato dentro del arreglo...y se que estan los dias de los eventos guardados en el arreglo ya que hago este codigo y me los muestra osea imprime.
Código PHP:
foreach($events as $key){
     echo 
$key["day"]."<br>";

Bueno gracias ... a todos los que puedan ayudar.