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.


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.


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,',');

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.


10

Anda dapat menggunakan substrfungsi untuk menghapus ini.

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

7

rtrim fungsi

rtrim($my_string,',');

Parameter kedua menunjukkan bahwa koma akan dihapus dari sisi kanan.



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);


2

itu sesederhana:

$commaseparated_string = name,name2,name3,;
$result = rtrim($commaseparated_string,',');

2

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

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

Keluaran:

    name1, name2, name3

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;  
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.