Este es uno de esos pequeños trucos o snippets en PHP que hacen más elegantes nuestros códigos.
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, como indiqué más arriba, algo 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' |
Mismo resultado, pero más claro que el anterior.
Yo soy una de las personas que dice que el Internet no nada mas sirve para chatear con el amigo(a) nada mas para relajarte.
Precisamente revisando mi Bandeja de entrada me encontre con un mensaje de desarrolloweb.com que me manda un sin fin de noticias informaticas de ultimo momento. Y Ohh para mi sorpresa encuentro un apartado que dice: «OpenLibra: La Biblioteca Libre Online del Desarrollador» lo visito y con el simple hecho de ver de que trata ya forma parte de mi persona y en lo personal le doy un diezassso o su equivalente.
Que bueno que existen este tipo de páginas tan importantes para la gente que desea seguir actualizando sus conocimientos. Enhorabuena y muchas felicidades y que siga creciendo esta página como cualquier otra. En lo personal yo lo recomendare a muchas personas, para empezar ya se lo recomende a mi hermano que estudia Ingeniería Mecatronica. Saludos y éxitoss.
good.. buen truko….
aportando, recordando algunos encuentro con la «,» de la muerte….
$arr=array(«a»,»b,»c»,»d»,»f»);
ahora eso lo quiero en una lista separada por comas, lo cumun o lo que alguna ves hise es
$cad=»»;
for($i=0;$i<count($arr);$i++){
$cad+=$arr[$i];
}
$cad = substr($cad, 0, -1);
echo "lo tengo $cad";
un atajo para esos caso la funcion implode que hace lo cotrario que un explode, une un arreglo en un string separado por la cadena indicada en el caso una ","
$cad = implode(",",$arr);
echo " lo tengo $cad ";
Muy bueno, me sirvió parte del código para algo que quería corregir, muchas gracias por su ayuda
exelente, quien lo imaginaria 😀
Me ha gustado, yo me he encontrado varias veces con ese supuesto y solía usar un
$cadena = substr($cadena,0,strripos($cadena,’,’));
Pero me ha gustado más lo del trim 😉
buen truquito ;D
Es muy buen truco pero hay un problema en tu truco que se resuelve de manera tmb muy fácil, si en la cadena creada gustas mantener una «,» al inicio este trim te la borra, pues lo q hay q hacer es mas bn y mucho más correcto es utilizar la función rtrim().
Saludos.
P.D.: buen aporte.
Muy útil y mucho mas sencillo de recordar, gracias 🙂