Eliminar el carácter delimitador final de una cadena delimitada

Resuelto I-M-JM asked hace 54 años • 7 respuestas

¿Cuál es la forma más rápida de eliminar el último carácter de una cadena?

tengo una cuerda como

a,b,c,d,e,

Me gustaría eliminar el último ',' y recuperar la cadena restante:

OUTPUT: a,b,c,d,e

¿Cuál es la forma más rápida de hacer esto?

I-M-JM avatar Jan 01 '70 08:01 I-M-JM
Aceptado

Al contrario de la pregunta formulada, rtrim()eliminará cualquier número de caracteres enumerados en el segundo argumento del final de la cadena. En caso de que espere solo una coma, el siguiente código sería suficiente:

$newarraynama = rtrim($arraynama, ",");

Pero en mi caso tenía 2 caracteres, una coma y un espacio, así que tuve que cambiar a

$newarraynama = rtrim($arraynama, " ,");

y ahora eliminaría todas las comas y espacios del final de la cadena, regresando a, b, c, d, edesde a, b, c, d, e,, a, b, c, d, e,,,oa, b, c, d, e, a, b, c, d, e , ,, , ,

Pero en caso de que pueda haber varias comas pero necesite eliminar solo la última , entonces rtrim()no debería usarse en absoluto; consulte otras respuestas para conocer la solución que responde directamente a la pregunta.

Sin embargo, rtrim()podría ser una buena opción si no sabes si el personaje adicional podría estar presente o no. A diferencia de substrlas soluciones basadas en -, volverá a, b, c, d, edea, b, c, d, e

 avatar Apr 08 '2011 09:04

Puedes usar substr:

echo substr('a,b,c,d,e,', 0, -1);
# => 'a,b,c,d,e'

Esto aísla la cadena desde el principio hasta el penúltimo carácter inclusive. En otras palabras, aísla toda la cadena excepto el último carácter.

En caso de que el último carácter pueda ser de varios bytes, se mb_substr()debe utilizar en su lugar.

Nicola Peluchetti avatar Apr 08 '2011 09:04 Nicola Peluchetti

Una alternativa substres la siguiente, como función:

substr_replace($string, "", -1)

¿Es el más rápido? No lo sé, pero apuesto a que todas estas alternativas son tan rápidas que simplemente no importa .

Tenga en cuenta que esta función no es segura para múltiples bytes y producirá un resultado no deseado si el último carácter es multibyte.

bart avatar Apr 08 '2011 11:04 bart

Puedes usar

substr(string $string, int $start, int[optional] $length=null);

Consulte substr en la documentación de PHP. Devuelve parte de una cadena.

Bas van Ommen avatar Apr 08 '2011 09:04 Bas van Ommen