nasıl ben bir dizenin sonunda kapalı bir virgül kaldırırım?

8 Cevap

Ben bir dize sonuna kapalı virgül kaldırmak istiyorum. I kullanıyorum şimdi olduğu gibi

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

ama bu sadece dizenin son karakteri kaldırır. Ben dinamik dize ekleyerek am, bu yüzden bazen dize sonunda hiçbir virgül yoktur. Nasıl bunun sonunda bir varsa PHP dizenin sonuna kapalı virgül kaldırmak olabilir?

8 Cevap

Bu iki çözümleri ile, klasik bir sorudur. Eğer ya da orada olmayabilir, tam olarak bir virgül, kullanımını kaldırmak isterseniz:

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

Bir satırın sonundan itibaren tüm virgül kaldırmak istiyorsanız basit kullanın:

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

Eğer kaldırmak için yani virgül kaldırmak ve boşluk yazmak istiyorum sondaki karakter aralığını belirtmek gibi RTRIM fonksiyonu (ve sol kesim için gelen ltrim) çok yararlıdır:

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

i gibi, döngü içinde bir şey birleştirerek konum sanırım

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

çok daha iyi bir dizi öğeleri toplamak ve sonra ihtiyacınız olan bir sınırlayıcı ile katılmak

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

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

Bu genellikle birleştirme ile meydana firar ve çift ayracı sorunları çözer

if(substr($str, -1, 1) == ',') {

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

}

http://php.net/manual/en/function.substr.php

rtrim fonksiyonuna bir göz var

rtrim ($string , ",");

Son karakter bir virgül ise yukarıdaki satır bir karakter kaldıracaktır

Ile bu koyun:

if(substr($string, -1)==",")

Basit bir düzenli ifade çalışacak

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

RTRIM ($ string, ","); kolay yoludur.