php implode ama ekstra sınırlayıcı düşünün

3 Cevap

Ben aşağıdaki gibi bir dizesi vardır:

test1, test2, test3, test4,

Ben bu konuda implode işlevini kullandığınızda ben dizideki 5 unsurlar olduğunu geri almak.

Nasıl dikkate son ekstra virgül alamaz?

ya da daha iyisi, nasıl ben böylece sonunda hiçbir ekstra virgül olduğunu substrine edebilirsiniz.

3 Cevap

You can remove trailing commas (or any character) using rtrim();
Try this:
$str = rtrim('test1, test2, test3, test4,', ',');

RTRIM () @ http://us2.php.net/manual/en/function.rtrim.php için doc bakın

Arms olarak önerilen Belki rtrim (), daha iyidir. Eğer alt dizeyi sordunuz Ama, sadece kayıtlı olması ...

substr($string, 0, -1);

Secound parametre negatif bir değer olduğunda, strlen($string)-N gibi hareket ve size son N karakteri eksik dize almak için gidiyor.

Muhtemelen kullanmak istiyorum

preg_split('#, *#', $str, null, PREG_SPLIT_NO_EMPTY)

daha esnek Tabii girişi (vb ardışık virgül, boşluk eksikliği ya da iki katına alanı, kolları ..) ile olacağını, bu giriş aynı kalacak nasıl emin bağlıdır.

Bkz preg_split()'s manual entry.