¿Cómo elimino la última coma de una cadena usando PHP?


96

Estoy usando un bucle para obtener valores de mi base de datos y mi resultado es como:

'name', 'name2', 'name3',

Y lo quiero así:

'name', 'name2', 'name3'

Quiero eliminar la coma después del último valor del ciclo.


11
Debes implodeponer comas en tus valores originales, no recorrerlos y eliminar cosas al final.
moonwave99

Respuestas:


217

Usa la rtrimfunción:

rtrim($my_string, ',');

El segundo parámetro indica el carácter que se eliminará.


26
También asegúrese de no tener ningún espacio al final después de la coma, de lo contrario, esto fallará, o haga rtrim (trim ($ my_string), ',').
Foxhoundn

¡Excelente respuesta!
DiChrist

@Foxhoundn Tu comentario es salvador. Gracias hermano
Jaydeep Goswami

1
Esto no funciona en un ciclo que agrega una coma al final, ya que eliminará todas las comas.
LizardKG

25

Tratar:

$string = "'name', 'name2', 'name3',";
$string = rtrim($string,',');

1
Ya lo probé, pero se muestra así: 'nombre''nombre2''nombre3' Esto no es lo que necesito
JoJo

Según su ejemplo, debe aplicar esta función solo en el resultado final y no en cada valor por separado.
Boaz

Estoy usando loop, entonces, ¿cómo puedo saber el resultado final del loop?
JoJo

El resultado final del ciclo se almacena en una variable, ¿verdad? Entonces aplica la rtrimllamada a esa variable. Si aún tiene dificultades, actualice su pregunta con el código que produce el ciclo.
Boaz

Me gusta esta respuesta en particular, porque uno de los problemas con muchas funciones integradas de PHP es que algunas de ellas son nulas y otras tienen tipos de retorno. En este caso, estaba tratando de escribir rtrim($string, ','), cuando debería estar escribiendo$string = rtrim($string, ',');
Alec

14

Pruebe el siguiente código:

$my_string = "'name', 'name2', 'name3',";
echo substr(trim($my_string), 0, -1);

Utilice este código para eliminar el último carácter de la cadena.


10

Puede utilizar la substrfunción para eliminar esto.

$t_string = "'test1', 'test2', 'test3',";
echo substr($t_string, 0, -1);

7

rtrim función

rtrim($my_string,',');

El segundo parámetro indica que la coma se borrará del lado derecho.



4

Afectará a su secuencia de comandos si trabaja con texto de varios bytes desde el que se subcadena. Si este es el caso, recomiendo encarecidamente habilitar las funciones mb_ * en su php.ini o hacer estoini_set("mbstring.func_overload", 2);

$string = "'test1', 'test2', 'test3',";
echo mb_substr($string, 0, -1);


2

es tan simple como:

$commaseparated_string = name,name2,name3,;
$result = rtrim($commaseparated_string,',');

2

Es mejor usar implosión para ese propósito. Implode es fácil e increíble:

    $array = ['name1', 'name2', 'name3'];
    $str = implode(', ', $array);

Salida:

    name1, name2, name3

No es fácil generar una matriz primero a partir de los valores leídos en la base de datos. rtrim y substr son soluciones válidas y buenas.
Steve Horvath

Bueno, tiene razón, pero si tiene una matriz, esta es una solución útil
khandaniel

1

Puede utilizar una de las siguientes técnicas para eliminar la última coma (,)

Solución 1:

$string = "'name', 'name2', 'name3',";  // this is the full string or text.
$string = chop($string,",");            // remove the last character (,) and store the updated value in $string variable.
echo $string;                           // to print update string.

Solución 2:

$string = '10,20,30,';              // this is the full string or text.
$string = rtrim($string,',');
echo $string;                       // to print update string.

Solución 3:

 $string = "'name', 'name2', 'name3',";  // this is the full string or text.
 $string = substr($string , 0, -1);
 echo $string;  
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.