Bagaimana cara menghapus koma terakhir dari string menggunakan PHP?

96

Saya menggunakan loop untuk mendapatkan nilai dari database saya dan hasilnya seperti:

'name', 'name2', 'name3',

Dan saya menginginkannya seperti ini:

'name', 'name2', 'name3'

Saya ingin menghapus koma setelah nilai terakhir dari loop.

JoJo
sumber
11
Anda harus implodememasukkan nilai asli Anda dengan koma, tidak mengulanginya dan menghapus barang di bagian akhir.
moonwave99

Jawaban:

217

Gunakan rtrimfungsi:

rtrim($my_string, ',');

Parameter Kedua menunjukkan karakter yang akan dihapus.

Ander2
sumber
26
Juga pastikan Anda tidak memiliki spasi tambahan setelah koma, jika tidak ini akan gagal, atau lakukan rtrim (trim ($ my_string), ',').
Foxhoundn
Jawaban yang sangat bagus!
DiChrist
@Foxhoundn Komentar Anda adalah penyelamat. Terima kasih bro
Jaydeep Goswami
1
Ini tidak berfungsi dalam loop yang menambahkan koma di akhir karena akan menghapus semua koma.
LizardKG
25

Mencoba:

$string = "'name', 'name2', 'name3',";
$string = rtrim($string,',');
Boaz
sumber
1
Saya sudah mencobanya tetapi tampilannya seperti ini: 'name''name2''name3' Ini bukan yang saya butuhkan
JoJo
Sesuai contoh Anda, Anda perlu menerapkan fungsi ini hanya pada hasil akhir dan tidak pada setiap nilai secara terpisah.
Boaz
Saya menggunakan loop jadi bagaimana saya bisa mengetahui hasil akhir dari loop?
JoJo
Hasil akhir dari perulangan disimpan dalam sebuah variabel, bukan? Jadi terapkan rtrimpanggilan ke variabel itu. Jika Anda masih mengalami kesulitan, perbarui pertanyaan Anda dengan kode yang menghasilkan putaran.
Boaz
Saya suka jawaban ini secara khusus, karena salah satu masalah dengan banyak fungsi bawaan PHP, adalah beberapa di antaranya tidak berlaku, dan beberapa di antaranya memiliki tipe kembalian. Dalam hal ini, saya mencoba untuk hanya menulis rtrim($string, ','), ketika saya seharusnya menulis$string = rtrim($string, ',');
Alec
14

Coba kode di bawah ini:

$my_string = "'name', 'name2', 'name3',";
echo substr(trim($my_string), 0, -1);

Gunakan kode ini untuk menghapus karakter terakhir dari string.

VijayS91
sumber
10

Anda dapat menggunakan substrfungsi untuk menghapus ini.

$t_string = "'test1', 'test2', 'test3',";
echo substr($t_string, 0, -1);
Annie Chandel
sumber
7

rtrim fungsi

rtrim($my_string,',');

Parameter kedua menunjukkan bahwa koma akan dihapus dari sisi kanan.

Jitendra Tyagi
sumber
5

menggunakan rtrim()

rtrim($string,',');
Sankalp Mishra
sumber
4

Ini akan memengaruhi skrip Anda jika Anda bekerja dengan teks multi-byte yang Anda gunakan sebagai substring. Jika demikian, saya sangat menyarankan untuk mengaktifkan fungsi mb_ * di php.ini Anda atau lakukan iniini_set("mbstring.func_overload", 2);

$string = "'test1', 'test2', 'test3',";
echo mb_substr($string, 0, -1);

Ashok Khot
sumber
2

itu sesederhana:

$commaseparated_string = name,name2,name3,;
$result = rtrim($commaseparated_string,',');
Ketan Savaliya
sumber
2

Lebih baik menggunakan implode untuk tujuan itu. Implode mudah dan luar biasa:

    $array = ['name1', 'name2', 'name3'];
    $str = implode(', ', $array);

Keluaran:

    name1, name2, name3
khandaniel
sumber
Tidak perlu membuat larik terlebih dahulu dari nilai yang dibaca database. rtrim & substr adalah solusi yang valid - dan bagus -.
Steve Horvath
Ya, Anda benar, tetapi jika Anda memiliki array, ini adalah solusi yang praktis
khandaniel
1

Anda dapat menggunakan salah satu dari teknik berikut untuk menghapus koma terakhir (,)

Solusi1:

$string = "'name', 'name2', 'name3',";  // this is the full string or text.
$string = chop($string,",");            // remove the last character (,) and store the updated value in $string variable.
echo $string;                           // to print update string.

Solusi 2:

$string = '10,20,30,';              // this is the full string or text.
$string = rtrim($string,',');
echo $string;                       // to print update string.

Solusi 3:

 $string = "'name', 'name2', 'name3',";  // this is the full string or text.
 $string = substr($string , 0, -1);
 echo $string;  
Majbah Habib
sumber