Nueva pregunta

Pregunta:

Fecha: 04-12-2015 09:51:47 (En Español)

Concatenar lista de elementos separados por coma con PHP[Resuelta]

Espero que a alguien le sirva esta info :D

Muchas veces nos encontramos con que estamos construyendo una cadena de forma dinámica en PHP mientras recorremos un bucle, un array o un objeto. Por ejemplo, cuando queremos componer una lista separando los elementos con comas u otro caracter. Pero claro, siempre nos termina sobrando el último:

$myString = '';
for( $x = 0; $x < 3; $x++ ){
  $myString .= 'number ' . $x . ',';
}
echo $myString; // 'number 1, number 2, number 3,'


Pese a que muchos lenguajes no dan importancia a esa última coma, llamada en programación trailing comma, en PHP debemos asegurarnos de suprimirla. Para ello, muchas veces he encontrado códigos que hacen uso de la función substr() para ello:

$myString = substr($myString, 0, -1);
echo $myString;  // 'number 1, number 2, number 3'


Correcto funciona, pero hay otra forma más elegante: usando trim().

Efectivamente, la función trim() que habitualmente se usa para eliminar espacios en blanco al principio o final de una cadena, acepta como parámetro el caracter que queremos filtrar o eliminar:


$myString = trim($myString, ',');
echo $myString;  // 'number 1, number 2, number 3'


saludos

Etiquetas: Aporte - Empezar a programar - PHP - Sugerencia Votos: 6 - Respuestas: 4 - Vistas: 18 Compartir en: Google Facebook Twitter LinkedIn Link
 

Respuestas:

  • Fecha: 04-12-2015 10:03:46 Gran info gracias por compartir hace mucho tenia esta duda.   Votos: 2 - Link respuesta
     
  • Fecha: 04-12-2015 11:54:20 Tenemos también otra opción utilizando arreglos:

    <?php
    $myStringArray = [];
    $separator = ', ';
    for( $x = 0; $x < 3; $x++ ){
        $myStringArray[] = 'number' . ($x + 1);
    }
    echo implode($separator, $myStringArray); // 'number 1, number 2, number 3,'
    
      Votos: 5 - Link respuesta
     
  • Fecha: 04-12-2015 11:59:33 De hecho más sencillito:

    <?php
    $myStringArray = [];
    $separator = ', ';
    foreach( range(1, 3) as $x ){
        $myStringArray[] = "number {$x}";
    }
    echo implode($separator, $myStringArray); // 'number 1, number 2, number 3,'
    
      Votos: 4 - Link respuesta
     
  • Fecha: 04-12-2015 12:18:36 otra alternativa tambien

    saludos
      Votos: 4 - Link respuesta
     
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión
 
frjcbbae garagebible.com