Foros del Web » Programando para Internet » PHP »

else if, condicion

Estas en el tema de else if, condicion en el foro de PHP en Foros del Web. Veran, tengo un json el cual me devuelve fechas dentro de un array con este formato, 29/11, dia 29 mes 11, extraigo los array y ...
  #1 (permalink)  
Antiguo 29/11/2016, 04:25
 
Fecha de Ingreso: enero-2008
Ubicación: Valencia
Mensajes: 65
Antigüedad: 16 años, 3 meses
Puntos: 2
else if, condicion

Veran, tengo un json el cual me devuelve fechas dentro de un array con este formato, 29/11, dia 29 mes 11, extraigo los array y les doy el formato deseado:

Código:
$array = json_decode($data);     

setlocale(LC_ALL,"es_ES");
$date0 = DateTime::createFromFormat("d/m/Y", $array[0]->fecha.'/2016');
$date1 = DateTime::createFromFormat("d/m/Y", $array[1]->fecha.'/2016');
$date2 = DateTime::createFromFormat("d/m/Y", $array[2]->fecha.'/2016');
$date3 = DateTime::createFromFormat("d/m/Y", $array[3]->fecha.'/2016');
$date4 = DateTime::createFromFormat("d/m/Y", $array[4]->fecha.'/2016');
$date5 = DateTime::createFromFormat("d/m/Y", $array[5]->fecha.'/2016');
$date6 = DateTime::createFromFormat("d/m/Y", $array[6]->fecha.'/2016'); 
$date7 = DateTime::createFromFormat("d/m/Y", $array[7]->fecha.'/2016');
los reemplazo en el array para que me muestren la fecha con el formato deseado:

Código:
$date100 = str_replace(array($array[0]->fecha),strftime("%a %d de %B del %Y",$date0->getTimestamp()),$data);
$date101 = str_replace(array($array[1]->fecha),strftime("%a %d de %B del %Y",$date1->getTimestamp()),$date100);
$date102 = str_replace(array($array[2]->fecha),strftime("%a %d de %B del %Y",$date2->getTimestamp()),$date101);
$date103 = str_replace(array($array[3]->fecha),strftime("%a %d de %B del %Y",$date3->getTimestamp()),$date102);
$date104 = str_replace(array($array[4]->fecha),strftime("%a %d de %B del %Y",$date4->getTimestamp()),$date103);
$date105 = str_replace(array($array[5]->fecha),strftime("%a %d de %B del %Y",$date5->getTimestamp()),$date104);
$date106 = str_replace(array($array[6]->fecha),strftime("%a %d de %B del %Y",$date6->getTimestamp()),$date105);
$date107 = str_replace(array($array[7]->fecha),strftime("%a %d de %B del %Y",$date7->getTimestamp()),$date106);
y todo correcto hasta ahi.

Y ahora mi pregunta, en el json lo que ocurre es que no tiene las fechas aun, y se van poniendo de lunes a jueves, entonces hasta que no estan puestas todas no funciona.

He intentado con if...else, pero no consigo poner la condicion adecuada puesto que no se si la hay, ¿se puede hacer algo o hay alguna manera de hacer que funcione antes que en el json esten puestas ?

Gracias

Última edición por Ramonromero; 29/11/2016 a las 08:01 Razón: Mal formulada la pregunta
  #2 (permalink)  
Antiguo 29/11/2016, 16: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: else if, condicion

Antes de codificar como json, asegúrate que tienes todas las fechas, supongo que bastará con que cuentes los elementos obtenidos en $data, creo que deberían ser 8.

Algo como:

Código PHP:
Ver original
  1. if(count($data) == 8) {
  2.     // Codificas en json y continúas
  3. } else {
  4.    // Está incompleto, no envías datos
  5. }
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 30/11/2016, 04:12
 
Fecha de Ingreso: enero-2008
Ubicación: Valencia
Mensajes: 65
Antigüedad: 16 años, 3 meses
Puntos: 2
Respuesta: else if, condicion

Cita:
Iniciado por Triby Ver Mensaje
Antes de codificar como json, asegúrate que tienes todas las fechas, supongo que bastará con que cuentes los elementos obtenidos en $data, creo que deberían ser 8.

Algo como:

Código PHP:
Ver original
  1. if(count($data) == 8) {
  2.     // Codificas en json y continúas
  3. } else {
  4.    // Está incompleto, no envías datos
  5. }
Triby, eso lo intente ya y no me funciona, no se por que, pero es asi, creo que esta detectando que el array esta puesto que esto me muestra, "fecha":"", lo que ocurre es que esta vacio, en fin no se, pero no me funciona. Gracias
  #4 (permalink)  
Antiguo 30/11/2016, 12:40
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: else if, condicion

Entonces, crea una variable $completo = true; y recorres el array con un for, si encuentras un elemento vacío, cambias $completo a false; al final, analizas este valor, continúas solo si es verdadero.
__________________
- León, Guanajuato
- GV-Foto
  #5 (permalink)  
Antiguo 30/11/2016, 12:53
 
Fecha de Ingreso: enero-2008
Ubicación: Valencia
Mensajes: 65
Antigüedad: 16 años, 3 meses
Puntos: 2
Respuesta: else if, condicion

Cita:
Iniciado por Triby Ver Mensaje
Entonces, crea una variable $completo = true; y recorres el array con un for, si encuentras un elemento vacío, cambias $completo a false; al final, analizas este valor, continúas solo si es verdadero.
Soy muy nuevo aun para eso, algun tuto?
  #6 (permalink)  
Antiguo 30/11/2016, 13:55
alvaro_trewhela
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: else if, condicion

a modo de ejemplo y a grandes rasgos como dice triby:

Código PHP:
Ver original
  1. $completo = true;
  2. for($k=0;$k<sizeof($arreglo);$k++){
  3.     if($elemento[$k] == ""){
  4.     $completo = false;
  5.     break;
  6.     }
  7. }
  8.  
  9. if($completo){
  10. //sigues
  11. }

usé sizeof puede ser count... no se
  #7 (permalink)  
Antiguo 30/11/2016, 14:15
 
Fecha de Ingreso: enero-2008
Ubicación: Valencia
Mensajes: 65
Antigüedad: 16 años, 3 meses
Puntos: 2
Respuesta: else if, condicion

Cita:
Iniciado por alvaro_trewhela Ver Mensaje
a modo de ejemplo y a grandes rasgos como dice triby:

Código PHP:
Ver original
  1. $completo = true;
  2. for($k=0;$k<sizeof($arreglo);$k++){
  3.     if($elemento[$k] == ""){
  4.     $completo = false;
  5.     break;
  6.     }
  7. }
  8.  
  9. if($completo){
  10. //sigues
  11. }

usé sizeof puede ser count... no se
Gracias alvaro_trewhela, el fin de semana lo miro que mañana ya trabajo.
  #8 (permalink)  
Antiguo 30/11/2016, 15:32
alvaro_trewhela
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: else if, condicion

Edito un pequeño detalle:

cambia:

if($elemento[$k] == ""){

por

if($arreglo[$k] == ""){
  #9 (permalink)  
Antiguo 02/12/2016, 12:39
 
Fecha de Ingreso: enero-2008
Ubicación: Valencia
Mensajes: 65
Antigüedad: 16 años, 3 meses
Puntos: 2
Respuesta: else if, condicion

cambia:

if($elemento[$k] == ""){

por

if($arreglo[$k] == ""){[/QUOTE]

Gracias por tu respuesta, pero tampoco:

Código:
<?php



$jornada9 = 'http://juveniles.esy.es/Temp_Actual/jornadas_array/a.php';
       
$ch = curl_init($jornada9);
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$data= curl_exec($ch);
curl_close($ch);     

$array = json_decode($data);     

setlocale(LC_ALL,"es_ES");
$date0 = DateTime::createFromFormat("d/m/Y", $array[0]->fecha.'/2016');
$date1 = DateTime::createFromFormat("d/m/Y", $array[1]->fecha.'/2016');
$date2 = DateTime::createFromFormat("d/m/Y", $array[2]->fecha.'/2016');
$date3 = DateTime::createFromFormat("d/m/Y", $array[3]->fecha.'/2016');
$date4 = DateTime::createFromFormat("d/m/Y", $array[4]->fecha.'/2016');
$date5 = DateTime::createFromFormat("d/m/Y", $array[5]->fecha.'/2016');
$date6 = DateTime::createFromFormat("d/m/Y", $array[6]->fecha.'/2016'); 
$date7 = DateTime::createFromFormat("d/m/Y", $array[7]->fecha.'/2016');   

$date100 = str_replace(array($array[0]->fecha),strftime("%a %d de %B del %Y",$date0->getTimestamp()),$data);
$date101 = str_replace(array($array[1]->fecha),strftime("%a %d de %B del %Y",$date1->getTimestamp()),$date100);
$date102 = str_replace(array($array[2]->fecha),strftime("%a %d de %B del %Y",$date2->getTimestamp()),$date101);
$date103 = str_replace(array($array[3]->fecha),strftime("%a %d de %B del %Y",$date3->getTimestamp()),$date102);
$date104 = str_replace(array($array[4]->fecha),strftime("%a %d de %B del %Y",$date4->getTimestamp()),$date103);
$date105 = str_replace(array($array[5]->fecha),strftime("%a %d de %B del %Y",$date5->getTimestamp()),$date104);
$date106 = str_replace(array($array[6]->fecha),strftime("%a %d de %B del %Y",$date6->getTimestamp()),$date105);
$date107 = str_replace(array($array[7]->fecha),strftime("%a %d de %B del %Y",$date7->getTimestamp()),$date106);

$completo = true;
for($k=0;$k<sizeof($array);$k++){
    if($array[$k] ==8){
    $completo = false;
    break;
    } 
    }
 
if($completo){    
 //sigues 
 
    $date_lunes = str_replace(array('lun'),'Lunes,', $date107); 
    $date_martes = str_replace(array('mar'),'Martes,', $date_lunes); 
    $date_miercoles = str_replace(array('mié'),'Miercoles,', $date_martes); 
    $date_sabado = str_replace(array('sáb'),'Sabado,', $date_miercoles);  
    $date_domingo = str_replace(array('dom'),'Domingo,', $date_sabado);  
    
    $cambia_nombrequipo = str_replace(array('Club de Fútbol '),"C.F. ",$date_domingo); 
    $cambia_nombrequipo1 = str_replace(array('La Creu C.F. Pobla Farnals'),"La Creu C.F.",$cambia_nombrequipo); 
    $date_final = str_replace(array('Club Almenara Atletic '),"Club Almenara Atl ",$cambia_nombrequipo1);  
    
    echo $date_final;
  
}else {
   echo $data;
}
si quitas una fecha del json no funciona.

"fecha":"",

Etiquetas: Ninguno
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 15:28.