¿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.