Відповіді:
$string = rtrim($string, ',');
Це класичне питання з двома рішеннями. Якщо ви хочете видалити рівно одну кому, яка може бути, а може і не бути, скористайтеся:
if (substr($string, -1, 1) == ',')
{
$string = substr($string, 0, -1);
}
Якщо ви хочете видалити всі коми з кінця рядка, використовуйте простіше:
$string = rtrim($string, ',');
Функція rtrim (і відповідна ltrim для лівого обрізки) дуже корисна, оскільки ви можете вказати діапазон символів, який потрібно видалити, тобто видалити коми і пробіли пробілів, які ви б написали:
$string = rtrim($string, ", \t\n");
я здогадуюсь, що ти об'єднуєш щось у циклі, наприклад
foreach($a as $b)
$string .= $b . ',';
Набагато краще - зібрати елементи в масив, а потім з'єднати їх з потрібним роздільником
foreach($a as $b)
$result[] = $b;
$result = implode(',', $result);
це вирішує проблеми із затримкою та подвійним роздільником, які зазвичай трапляються при конкатенації
if(substr($str, -1, 1) == ',') {
$str = substr($str, 0, -1);
}
Простий регулярний вираз спрацював би
$string = preg_replace("/,$/", "", $string)
Попередьте це за допомогою:
if(substr($string, -1)==",")