2009-10-29 11 views
85

मैं एक स्ट्रिंग के अंत से कॉमा को हटाना चाहता हूं। जैसा कि अब है मैंमैं स्ट्रिंग के अंत से कॉमा को कैसे हटा सकता हूं?

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

का उपयोग कर रहा हूं लेकिन यह केवल स्ट्रिंग के अंतिम चरित्र को हटा देता है। मैं गतिशील रूप से स्ट्रिंग जोड़ रहा हूं, इसलिए कभी-कभी स्ट्रिंग के अंत में कोई कॉमा नहीं होता है। स्ट्रिंग के अंत से PHP को कॉमा को कैसे हटाया जा सकता है यदि इसके अंत में कोई है?

उत्तर

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

Docs for rtrim here

+25

यह एकाधिक अल्पविरामों को हटा देगा: "ए, बी," "ए, बी" बन जाएगा।चाहे वह ओपी चाहता है या नहीं, मुझे नहीं पता ... – Greg

+0

सही, धन्यवाद! – zeckdude

+1

धन्यवाद, मैं इसे सबस्ट्रेट, स्ट्रेलन के साथ कर रहा था ... मेरी सारी ज़िंदगी – Farhad

0

पूर्व में होना उस के साथ:

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

rtrim समारोह

rtrim ($string , ","); 
पर एक नजर है

ऊपर लाइन एक चार निकाल देंगे, तो पिछले चार एक अल्पविराम

0

है एक साधारण नियमित अभिव्यक्ति काम करेगा

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

डेवलपर एक समस्या को हल करने के लिए नियमित अभिव्यक्ति का उपयोग करता है और अब उसे दो समस्याएं हैं। – Sigurd

1

rtrim ($ स्ट्रिंग, ""); सबसे आसान तरीका है।

9

मैं लगता है कि आप पाश में कुछ श्रृंखलाबद्ध कर रहे हैं,

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

ज्यादा बेहतर तरह एक सरणी में आइटम एकत्र और फिर एक सीमांकक के साथ शामिल होने के लिए है आप

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

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

इस हल की जरूरत है पिछला और डबल डेलीमीटर समस्या जो आम तौर पर संगतता

+0

अच्छा सुझाव। हालांकि, PHP में सभी सम्मेलन नहीं हो सकते हैं। मेरे मामले में, मैं PHP के लिए एक जावास्क्रिप्ट concatenated स्ट्रिंग को सुलझाने के लिए भेज रहा हूँ। – Sablefoste

34

के साथ होती है, यह दो समाधानों के साथ एक क्लासिक प्रश्न है। आप वास्तव में एक अल्पविराम निकालना चाहते हैं, या वहाँ नहीं हो सकता है, जो उपयोग:

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

आप एक पंक्ति के अंत से सभी के लिए अल्पविराम को दूर करने के लिए उपयोग में आसान चाहते हैं:

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

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

उस विस्तृत स्पष्टीकरण के लिए धन्यवाद। यह चीजों को स्पष्ट करता है! – zeckdude

0

मैं एक परेशान "invisi था: rtrim समारोह (और बाईं ट्रिम के लिए इसी ltrim) के रूप में आप यानी अल्पविराम के दूर करने के लिए और पिछली श्वेत रिक्ति आप लिखते थे दूर करने के लिए पात्रों की एक सीमा निर्दिष्ट कर सकते हैं, बहुत उपयोगी है मेरे स्ट्रिंग की और अंत में ble "अंतरिक्ष इस

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

करना था लेकिन एक समाधान ऊपर बेहतर है

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

आप पाश में कुछ श्रृंखलाबद्ध रहे हैं, तो आप इस में यह कर सकते हैं रास्ता भी:

$coma = ""; 
foreach($a as $b){ 
    $string .= $coma.$b; 
    $coma = ","; 
} 
संबंधित मुद्दे