Foros del Web » Programando para Internet » PHP »

Que Funcion Implode Imprima Solo Cuando Existan Valores

Estas en el tema de Que Funcion Implode Imprima Solo Cuando Existan Valores en el foro de PHP en Foros del Web. Hola, les hago una pregunta, cuando uno usa la funcion implode de esta manera: $datos = array($row[1],$row[2],$row[3],$row[4],$row[5],$row[6]); $cadena = implode('-',$datos); si quisiera imprimir $cadena obtendria ...
  #1 (permalink)  
Antiguo 30/09/2011, 09:57
 
Fecha de Ingreso: febrero-2011
Mensajes: 108
Antigüedad: 13 años, 2 meses
Puntos: 4
Que Funcion Implode Imprima Solo Cuando Existan Valores

Hola, les hago una pregunta, cuando uno usa la funcion implode de esta manera:

$datos = array($row[1],$row[2],$row[3],$row[4],$row[5],$row[6]);

$cadena = implode('-',$datos);

si quisiera imprimir $cadena obtendria lo siguiente, si todos los $row (desde la base de datos ) tuvieran datos:

x1-x2-x3-x4-x5-x6

pero si $row[4],$row[5],$row[6] por ejemplo no tuvieran datos quedaria asi:

x1-x2-x3---

¿Como puedo hacer para que cuando no tenga datos en mis $row no me imprima la cadena del implode, es decir, si $row[4],$row[5],$row[6] no tuvieran datos quedara asi:

x1-x2-x3

Gracias!!
  #2 (permalink)  
Antiguo 30/09/2011, 10:05
 
Fecha de Ingreso: febrero-2010
Mensajes: 818
Antigüedad: 14 años, 2 meses
Puntos: 55
Respuesta: Que Funcion Implode Imprima Solo Cuando Existan Valores

puedes recorrer el arreglo y eliminar los elementos vacios.

Código PHP:
<?php

for($i=0;$i<count($arreglo);$i++){
    if(
$arreglo[$i] == ''){
          unset(
$arreglo[$i]);
    }
}
?>
  #3 (permalink)  
Antiguo 30/09/2011, 10:06
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Que Funcion Implode Imprima Solo Cuando Existan Valores

Puedes hacer algo así:
Código PHP:
Ver original
  1. $datos = array();
  2. foreach ($row as $data) {
  3.       if (!empty($data)) {
  4.              $datos[] = $data;
  5.       }
  6. }
  7.  
  8. echo implode('-', $datos);

Saludos.
  #4 (permalink)  
Antiguo 30/09/2011, 10:34
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: Que Funcion Implode Imprima Solo Cuando Existan Valores

tambien podías usar las funciones de array en PHP

Código PHP:
$datos array_values(array_diff($datos, array('')));
echo 
implode('-'$datos); 

saludos.
__________________
More about me...
~ @rhyudek1
~ Github
  #5 (permalink)  
Antiguo 30/09/2011, 10:57
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: Que Funcion Implode Imprima Solo Cuando Existan Valores

Otra opción seria:

Código PHP:
Ver original
  1. $str = implode('-', array_filter($data));

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #6 (permalink)  
Antiguo 30/09/2011, 11:40
 
Fecha de Ingreso: febrero-2011
Mensajes: 108
Antigüedad: 13 años, 2 meses
Puntos: 4
Respuesta: Que Funcion Implode Imprima Solo Cuando Existan Valores

Cita:
Iniciado por masterpuppet Ver Mensaje
Otra opción seria:

Código PHP:
Ver original
  1. $str = implode('-', array_filter($data));

Saludos.
Gracias, es la solucion mas corta!!! 100% funcionando como queria

Etiquetas: funcion, implode
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 17:19.