Muchas veces nos encontramos con que estamos construyendo una cadena de forma dinámica en PHP mientras recorremos un bucle, un array o un objeto. Por ejemplo, cuando queremos componer una lista separando los elementos con comas u otro caracter. Pero claro, siempre nos termina sobrando el último:

$myString = '';
for( $x = 0; $x < 3; $x++ ){
  $myString .= 'number ' . $x . ',';
}
 
echo $myString; // 'number 1, number 2, number 3,

Pese a que muchos lenguajes no dan importancia a esa última coma, llamada en programación trailing comma, en PHP debemos asegurarnos de suprimirla. Para ello,  muchas veces he encontrado códigos que hacen uso de la función substr() para ello:

$myString = substr($myString, 0, -1);
echo $myString;  // 'number 1, number 2, number 3'

Correcto funciona, pero hay otra forma, como indiqué más arriba, algo más elegante: usando trim().

Efectivamente, la función trim() que habitualmente se usa para eliminar espacios en blanco al principio o final de una cadena, acepta como parámetro el caracter que queremos filtrar o eliminar:

$myString = trim($myString, ',');
echo $myString;  // 'number 1, number 2, number 3'

Mismo resultado, pero más claro que el anterior.