Eliminar el carácter delimitador final de una cadena delimitada
¿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?
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, e
desde 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 substr
las soluciones basadas en -, volverá a, b, c, d, e
dea, b, c, d, e
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.
Una alternativa substr
es 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.
Puedes usar
substr(string $string, int $start, int[optional] $length=null);
Consulte substr en la documentación de PHP. Devuelve parte de una cadena.