Foros del Web » Programando para Internet » PHP »

Separacion de strings por comas

Estas en el tema de Separacion de strings por comas en el foro de PHP en Foros del Web. Tengo un array con varios strings, y tengo que mostrarlos en pantalla con una , de por medio, excepto en el ultimo. El problema es ...
  #1 (permalink)  
Antiguo 01/02/2011, 14:19
Avatar de aguila_393  
Fecha de Ingreso: septiembre-2007
Ubicación: Argentina
Mensajes: 406
Antigüedad: 16 años, 6 meses
Puntos: 1
Separacion de strings por comas

Tengo un array con varios strings, y tengo que mostrarlos en pantalla con una , de por medio, excepto en el ultimo. El problema es que el array es variable, como puedo hacer para que siempre en el ultimo string no muestre la coma.

Solo se deben mostrar 5 strings en pantalla, y el array puede tener mas o menos de 5.
Código PHP:
Ver original
  1. for ( $i = 0 ; $i < 5 ; $i++){
  2. echo $array['string'];
  3. $f = count($array['string']);
  4.  if ($f < 4) { if ($i < $f) {echo ", ";} } elseif ($i < 5){ echo ", ";}
  5. }

Asi es como lo tengo armado pero no funciona.
  #2 (permalink)  
Antiguo 01/02/2011, 14:26
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Separacion de strings por comas

si es un array lo mas fácil es usar join()
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 01/02/2011, 14:26
Avatar de Perr0  
Fecha de Ingreso: mayo-2005
Ubicación: Santiago de Chile, Chile
Mensajes: 676
Antigüedad: 18 años, 10 meses
Puntos: 79
Respuesta: Separacion de strings por comas

mejor borron y cuenta nueva
suponiendo que tu array es $array

Código PHP:
Ver original
  1. <?
  2. // $array es tu array
  3. foreach($array as $texto)
  4. $encadenado .= $texto.",";
  5. print substr($encadenado,0,strlen($encadenado)-1);
  6. ?>

salu2


sipo lo otro es join($array,",")

pero es mas lindo para que conozca mas funciones
__________________
Numerador Mp3 en Access =)
http://www.mediafire.com/download/r9...pdw/mp3(2).zip
  #4 (permalink)  
Antiguo 01/02/2011, 14:31
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: Separacion de strings por comas

mmm imagino que lo más simple sería con implode:
Código PHP:
Ver original
  1. if(is_array($array))
  2. echo implode(",",$array);

si no te sirve, igual puedes hacer un pop para sacar el ultimo elemento del arreglo y luego hacer el implode.
  #5 (permalink)  
Antiguo 01/02/2011, 14:34
Avatar de Perr0  
Fecha de Ingreso: mayo-2005
Ubicación: Santiago de Chile, Chile
Mensajes: 676
Antigüedad: 18 años, 10 meses
Puntos: 79
Respuesta: Separacion de strings por comas

Código PHP:
Ver original
  1. <?
  2. // $array es tu array
  3. foreach($array as $i=>$texto)
  4. if($i>4) break; else $encadenado .= $texto.",";
  5. print substr($encadenado,0,strlen($encadenado)-1);
  6. ?>

ahora si, se me habia olvidado el 5

salu2
__________________
Numerador Mp3 en Access =)
http://www.mediafire.com/download/r9...pdw/mp3(2).zip
  #6 (permalink)  
Antiguo 01/02/2011, 14:34
 
Fecha de Ingreso: enero-2007
Mensajes: 146
Antigüedad: 17 años, 2 meses
Puntos: 16
Respuesta: Separacion de strings por comas

join es un alias de implode. Te recomiendo utilizar implode para que la recuerdes mejor y si algún día necesitas hacer lo contrario, sepas que existe una función con nombre parecido, que se llama explode :)
  #7 (permalink)  
Antiguo 01/02/2011, 14:40
Avatar de aguila_393  
Fecha de Ingreso: septiembre-2007
Ubicación: Argentina
Mensajes: 406
Antigüedad: 16 años, 6 meses
Puntos: 1
Respuesta: Separacion de strings por comas

Ahora me fijare bien como lo resolvieron, pero el join/implode no me sirve porque lo de dentro del array lo tengo que modificar, o mas bien agregarle otra cosa.

Este es el codigo original:
Código PHP:
Ver original
  1. for ($i=0 ; $i<5 ; $i++) { echo "<a href='/".getUrl($song['tags'][$i])."/' title='".$song['tags'][$i]."'> ".$song['tags'][$i]."</a>"; $f = count($song['tags']); if ($f < 4) { if ($i < $f) {echo ", ";} } elseif ($i < 5){ echo ", ";} }
  #8 (permalink)  
Antiguo 01/02/2011, 14:44
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Separacion de strings por comas

Cita:
Iniciado por aguila_393 Ver Mensaje
Ahora me fijare bien como lo resolvieron, pero el join/implode no me sirve porque lo de dentro del array lo tengo que modificar, o mas bien agregarle otra cosa.
si crees que no te sirve estas equivocado, los arboles te impiden ver el bosque que ya es otra cosa...
Código PHP:
$salida = array();
for (
$i=$i<$i++)
{
  
$salida []= "<a href='/".getUrl($song['tags'][$i])."/' title='".$song['tags'][$i]."'> ".$song['tags'][$i]."</a>";
}
echo 
join(', '$salida); /* o implode() */ 
tan solo debes usar la imaginación y creatividad por supuesto!!


PDTA: y por favor, de menos ordena tu código pues parece que tienes los pies en las manos...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #9 (permalink)  
Antiguo 01/02/2011, 14:47
 
Fecha de Ingreso: enero-2007
Mensajes: 146
Antigüedad: 17 años, 2 meses
Puntos: 16
Respuesta: Separacion de strings por comas

Pues siempre podrás en vez de hacer un echo guardar todas las iteraciones en una variable y agregar un ", " siempre. Y al final quitar los dos últimos caracteres (espacio y coma).
for (...) {
$mensaje .= 'loquesea' . ', ';
}
echo substr($mensaje, 0, -2);
  #10 (permalink)  
Antiguo 01/02/2011, 15:22
Avatar de aguila_393  
Fecha de Ingreso: septiembre-2007
Ubicación: Argentina
Mensajes: 406
Antigüedad: 16 años, 6 meses
Puntos: 1
Respuesta: Separacion de strings por comas

Gracias a todos, y disculpen mi ignoracia. Lo hice como explico pateketrueke . El unico problema es que no se borran los datos de $salida , por lo que me va acumulando todos los strings que recibo. Estuve buscando en google como borrar un array o el contenido de un array pero encontre solo soluciones complicadas, y supongo que habra alguna manera mas simple de hacerlo. Tambien estuve leyendo la documentacion pero no dice nada de como borrar el contenido.
  #11 (permalink)  
Antiguo 01/02/2011, 15:27
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: Separacion de strings por comas

Desde luego, para borrar o vaciar una variable, aunque sea array, puedes usar $variable=null; o bien unset($variable);
  #12 (permalink)  
Antiguo 01/02/2011, 15:28
 
Fecha de Ingreso: febrero-2010
Mensajes: 818
Antigüedad: 14 años, 2 meses
Puntos: 55
Respuesta: Separacion de strings por comas

Cita:
Iniciado por aguila_393 Ver Mensaje
Gracias a todos, y disculpen mi ignoracia. Lo hice como explico pateketrueke . El unico problema es que no se borran los datos de $salida , por lo que me va acumulando todos los strings que recibo. Estuve buscando en google como borrar un array o el contenido de un array pero encontre solo soluciones complicadas, y supongo que habra alguna manera mas simple de hacerlo. Tambien estuve leyendo la documentacion pero no dice nada de como borrar el contenido.
doc oficial
arreglos
http://cl.php.net/manual/es/ref.array.php

podrias usar
http://cl.php.net/manual/es/function.array-chunk.php

Etiquetas: comas, separacion, strings
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 01:19.