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

JoJo
fuente
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á.

Ander2
fuente
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,',');
Booz
fuente
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.

VijayS91
fuente
10

Puede utilizar la substrfunción para eliminar esto.

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

rtrim función

rtrim($my_string,',');

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

Jitendra Tyagi
fuente
5

utilizar rtrim()

rtrim($string,',');
Sankalp Mishra
fuente
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);

Ashok Khot
fuente
2

es tan simple como:

$commaseparated_string = name,name2,name3,;
$result = rtrim($commaseparated_string,',');
Ketan Savaliya
fuente
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
Khandaniel
fuente
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;  
Majbah Habib
fuente