bagaimana cara menghapus koma di ujung string?


119

Saya ingin menghapus koma dari ujung string. Seperti yang sekarang saya gunakan

$string = substr($string,0,-1);

tapi itu hanya menghapus karakter terakhir dari string. Saya menambahkan string secara dinamis, jadi terkadang tidak ada koma di akhir string. Bagaimana caranya agar PHP menghapus koma dari ujung string jika ada di ujungnya?

Jawaban:


303
$string = rtrim($string, ',');

Dokumen untuk rtrimdi sini


27
Ini akan menghapus beberapa koma: "a, b ,,," akan menjadi "a, b". Apakah itu yang diinginkan OP atau tidak, saya tidak tahu ...
Greg

1
Terima kasih, saya melakukan ini dengan substr, strlen, ... sepanjang hidup saya
Farhad

38

Ini adalah pertanyaan klasik, dengan dua solusi. Jika Anda ingin menghapus hanya satu koma, yang mungkin ada atau tidak ada, gunakan:

if (substr($string, -1, 1) == ',')
{
  $string = substr($string, 0, -1);
}

Jika Anda ingin menghapus semua koma dari akhir baris, gunakan yang lebih sederhana:

$string = rtrim($string, ',');

Fungsi rtrim (dan ltrim terkait untuk trim kiri) sangat berguna karena Anda dapat menentukan rentang karakter yang akan dihapus, yaitu untuk menghapus koma dan spasi kosong yang akan Anda tulis:

$string = rtrim($string, ", \t\n");

Terima kasih atas penjelasan detailnya. Itu menjelaskan banyak hal!
zeckdude

12

saya kira Anda menggabungkan sesuatu dalam lingkaran, seperti

foreach($a as $b)
  $string .= $b . ',';

jauh lebih baik adalah mengumpulkan item dalam array dan kemudian menggabungkannya dengan pembatas yang Anda butuhkan

foreach($a as $b)
  $result[] = $b;

$result = implode(',', $result);

ini memecahkan masalah trailing dan pembatas ganda yang biasanya terjadi dengan penggabungan


Saran yang bagus. Namun, tidak semua penggabungan dapat dilakukan di PHP. Dalam kasus saya, saya mengirim string gabungan Javascript untuk PHP terurai.
Sablefoste

4

Jika Anda menggabungkan sesuatu dalam loop, Anda juga dapat melakukannya dengan cara ini:

$coma = "";
foreach($a as $b){
    $string .= $coma.$b;
    $coma = ",";
}

2

lihatlah fungsi rtrim

rtrim ($string , ",");

baris di atas akan menghapus karakter jika karakter terakhir adalah koma



1

Ekspresi reguler sederhana akan berhasil

$string = preg_replace("/,$/", "", $string)

2
Pengembang menggunakan ekspresi reguler untuk menyelesaikan masalah dan sekarang dia memiliki dua masalah.
Sigurd

1

rtrim ($ string, ","); adalah cara termudah.


1

Saya memiliki ruang "tak terlihat" yang mengganggu di ujung tali saya dan harus melakukan ini

 $update_sql=rtrim(trim($update_sql),',');

Tapi solusi di atas lebih baik

 $update_sql=rtrim($update_sql,', ');

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.