Foros del Web » Programando para Internet » PHP »

comparacion y creacion de arrays

Estas en el tema de comparacion y creacion de arrays en el foro de PHP en Foros del Web. Buenos días, tengo aqui un problema de arrays a ver si alguno sabria como hacerlo de manera de no volverme skizo perdido... jajaja haber tengo ...
  #1 (permalink)  
Antiguo 27/03/2013, 02:44
 
Fecha de Ingreso: marzo-2013
Mensajes: 25
Antigüedad: 11 años, 1 mes
Puntos: 0
Exclamación comparacion y creacion de arrays

Buenos días, tengo aqui un problema de arrays a ver si alguno sabria como hacerlo de manera de no volverme skizo perdido... jajaja

haber tengo 3 arrays.

array (1) [01, 02, 03, 04...] (dias del mes, varia segun el mes logicamente)
array (2) [07, 31] (dias del mes que son festivos nacionales)
array (3) [13, 22] (dias del mes que son festivos locales)

El tema es comparar los arrays, y los dias que coincidan añadirles una cifra, habia pensado usar 1 para dias normales, 2 para festivos nacionales, 3 para festivos locales...

he empezado sacando esta informacion de la base de datos, esta informacion, las fechas son una cadena completa donde se especifica el dia del mes, el mes, el año y el dia de la semana, luego yo he apañado los arrays con substrings dentro de foreach y así.

para comprar estoy con array_intersect que me devuelve los valores que coinciden pero el tema es que a la vez que me devuelve esos valores me cree otro array añadiendo 1 a todos los valores menos a los festivos nacionales que añadira un 2, luego supongo que ese array tendre que volverlo a comparar con el array de festivos locales y los que coincidan se quita el 1 se pone un 3...

weno haber si este cacao tiene solución, un saludo y gracias.
  #2 (permalink)  
Antiguo 27/03/2013, 03:11
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: comparacion y creacion de arrays

No entiendo para qué necesitas crear otro array, si ya tienes toda la información que necesitas, de hecho, me sobra el array de días del mes, porque puedes hacer un for() desde 1 hasta el último día del mes.

Luego, tampoco veo la necesidad de tener los días 1-9 con un cero antes, pero eso es ya otra cosa.

Código PHP:
Ver original
  1. // Teniendo en array los días festivos nacionales y locales
  2. $festNal = array(7, 31);
  3. $festLoc = array(13, 22);
  4.  
  5. // Último día del mes
  6. $ultimo = 31;
  7.  
  8. // Recorres los días del mes
  9. for($i = 1; $i <= $ultimo; $i++) {
  10.     if(in_array($i, $festNal)) {
  11.           // Esto es un día festivo nacional
  12.     }
  13.     // aquí podría ir un else if en caso de que no marques ambos a la vez
  14.     if(in_array($i, $festLoc)) {
  15.           // Esto es un día festivo local
  16.     }
  17. }

Bueno, ahora, todo depende del uso que pienses darle a esos arrays, pero sigo sin ver la necesidad de crear otros; ya nos contarás.
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 27/03/2013, 03:15
 
Fecha de Ingreso: marzo-2013
Mensajes: 25
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: comparacion y creacion de arrays

El tema es que estoy trabajando sobre el trabajo de otros siguiendo la logica de "si funciona no se cambia" entonces tengo tablas en la base de datos sin relaciones entre ellas... entonces tengo una tabla con los dias del mes (y mas informacion) y otra tabla con los festivos nacionales y otra con los locales... voy a probarlo, pero la idea era simplemente cojer los datos del array donde estan todos los dias del mes, compararlos y añadir donde corrsponda la cifra correspondiente para luego tratarlos con un foreach o algo asi... la verdad es que esto es bastante caotico asique gracias por la paciencia :)
  #4 (permalink)  
Antiguo 27/03/2013, 03:34
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: comparacion y creacion de arrays

Sin ver lo que haces (tu código), yo sigo pensando que no es necesario tanta vuelta para marcar cada día con 1, 2 o 3.

Insisto, ya tienes los arrays de dias festivos, basta una comparación con in_array(), como el ejemplo del mensaje anterior.

Aunque también podrías "marcar" cada día desde la consulta de la tabla, usando JOIN: http://www.forosdelweb.com/f86/inner...render-952003/, de hecho, tal vez te convendría LEFT en vez de INNER, pero debes probar para ver las diferencias.
__________________
- León, Guanajuato
- GV-Foto
  #5 (permalink)  
Antiguo 27/03/2013, 03:48
 
Fecha de Ingreso: marzo-2013
Mensajes: 25
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: comparacion y creacion de arrays

Lo entiendo, y la idea es buena, pero dentro de las tablas no hay nada que las diferencie para poder poner condiciones IF.
  #6 (permalink)  
Antiguo 08/04/2013, 00:59
 
Fecha de Ingreso: marzo-2013
Mensajes: 25
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: comparacion y creacion de arrays

Siguiendo con el tema este despues de vacaciones de semana santa, tengo el siguiente codigo.

Código PHP:
$consulta_dias_fest_nac 'SELECT `dia` FROM `festivos_nacionales` WHERE `dia` LIKE ' $cal ' AND `anio` LIKE ' $año ;
    
$consulta_dias_fest_nacC mysql_query($consulta_dias_fest_nac);
    
$consulta_dias_fest_loc 'SELECT `dia` FROM `festivos_locales` WHERE `dia` LIKE ' .$cal ' `centro` LIKE ' $centro ' AND `anio` LIKE ' $año;
    
$consulta_dias_fest_locC mysql_query($consulta_dias_fest_loc);
    
$fests = array();
    while (
$fest mysql_fetch_array($consulta_dias_fest_nacCMYSQL_BOTH)){
        
$fests[] = $fest;
    }
    while (
$fest mysql_fetch_array($consulta_dias_fest_locCMYSQL_BOTH)){        
            
$fests[] = $fest;
    } 
Bien, esto funciona bien si las dos consultas devuelven un resultado, si alguna no devuelve resultado me da un warnig (logicamente) algun sistema de control para que no me lance el warning ?, he probado a poner un if de que si algun mysql_query me devuelve un false no me meta nada en el array pero no me funciona.
  #7 (permalink)  
Antiguo 08/04/2013, 11:27
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: comparacion y creacion de arrays

Algunas preguntas:

- Cómo obtienes los días del mes?
- Qué valor tienes en $cal?
- Qué valor tienes en $año?... no te da problemas la ñ?
__________________
- León, Guanajuato
- GV-Foto

Etiquetas: arrays, comparacion
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 07:51.