मैं PHP का उपयोग करके स्ट्रिंग से अंतिम अल्पविराम कैसे निकालूं?


96

मैं अपने डेटाबेस से मान प्राप्त करने के लिए एक लूप का उपयोग कर रहा हूं और मेरा परिणाम इस प्रकार है:

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

और मैं इसे इस तरह चाहता हूं:

'name', 'name2', 'name3'

मैं लूप के अंतिम मान के बाद कॉमा को निकालना चाहता हूं।


11
आपको implodeकॉमा के साथ अपने मूल मूल्यों को रखना चाहिए , न कि उन पर लूप करना चाहिए और अंत में सामान निकालना चाहिए।
चाँदवॉ ९९

जवाबों:


217

rtrimफ़ंक्शन का उपयोग करें :

rtrim($my_string, ',');

दूसरा पैरामीटर हटाए जाने वाले वर्ण को इंगित करता है।


26
यह भी सुनिश्चित करें कि अल्पविराम के बाद आपके पास कोई अनुगामी स्थान नहीं है, अन्यथा यह विफल हो जाएगा, या आरटीएम (ट्रिम ($ my_string), ',') कर देगा।
फॉक्सहाउंडन

बहुत बढ़िया जवाब!
१२

@Foxhoundn आपकी टिप्पणी तारणहार है। धन्यवाद भाई
जयदीप गोस्वामी

1
यह एक लूप में काम नहीं करता है जो अंत में एक अल्पविराम जोड़ता है क्योंकि यह सभी अल्पविरामों को हटा देगा।
छिपकली 21

25

प्रयत्न:

$string = "'name', 'name2', 'name3',";
$string = rtrim($string,',');

1
मैंने पहले से ही इसकी कोशिश की, लेकिन इसका प्रदर्शन इस प्रकार है: 'name''name2''name3' यह वह नहीं है जिसकी मुझे आवश्यकता है
JoJo

अपने उदाहरण के अनुसार, आपको इस फ़ंक्शन को केवल अंतिम परिणाम पर लागू करने की आवश्यकता है और प्रत्येक मूल्य पर अलग से नहीं।
बोअज

मैं लूप का उपयोग कर रहा हूं इसलिए मैं लूप के अंतिम परिणाम को कैसे जान सकता हूं?
जोजो

लूप का अंतिम परिणाम एक चर में संग्रहीत किया जाता है, है ना? तो rtrimउस चर पर कॉल लागू करें। यदि आपको अभी भी कठिनाई हो रही है, तो अपने प्रश्न को उस कोड से अपडेट करें जो लूप का उत्पादन करता है।
बोअज

मुझे यह उत्तर विशेष रूप से पसंद है, क्योंकि बहुत सारे PHP में निर्मित कार्यों में से एक समस्या यह है कि उनमें से कुछ शून्य हैं, और उनमें से कुछ में वापसी के प्रकार हैं। इस मामले में, मैं सिर्फ लिखने की कोशिश कर रहा था rtrim($string, ','), जब मुझे लिखना चाहिए$string = rtrim($string, ',');
एलेक

14

नीचे दिए गए कोड का प्रयास करें:

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

स्ट्रिंग के अंतिम वर्ण को निकालने के लिए इस कोड का उपयोग करें।


10

substrइसे हटाने के लिए आप फ़ंक्शन का उपयोग कर सकते हैं ।

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

7

rtrim समारोह

rtrim($my_string,',');

दूसरा पैरामीटर इंगित करता है कि अल्पविराम को दाईं ओर से हटा दिया जाएगा।



4

यदि आप उस बहु-बाइट पाठ के साथ काम करते हैं जो आप से प्रतिस्थापित करते हैं तो यह आपकी स्क्रिप्ट को प्रभावित करेगा। यदि यह स्थिति है, तो मैं आपके php.ini में mb_ * फ़ंक्शन को सक्षम करने की अनुशंसा करता हूं या यह करता हूंini_set("mbstring.func_overload", 2);

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



2

उस उद्देश्य के लिए निहित का उपयोग करना बेहतर है। Implode आसान और भयानक है:

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

आउटपुट:

    name1, name2, name3

डेटाबेस-रीड वैल्यू से पहले एरे जनरेट करना अनैच्छिक है। rtrim और जड़ दोनों वैध हैं - और अच्छे समाधान।
स्टीव होर्वाथ

ठीक है, आप सही हैं लेकिन अगर आपके पास एक सरणी है तो यह एक आसान समाधान है
खंडनियल

1

आप अंतिम अल्पविराम (,) को निकालने के लिए निम्नलिखित में से किसी एक तकनीक का उपयोग कर सकते हैं

solution1:

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

समाधान 2:

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

समाधान 3:

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

0

लूप के दौरान लगाने के उपाय:

//1 - Using conditional:

$source = array (1,2,3);
$total = count($source);
    
$str = null;
    
for($i=0; $i <= $total; $i++){ 
        
    if($i < $total) {
        $str .= $i.',';
    }
    else {
        $str .= $i;
    }
}
    
echo $str; //0,1,2,3

//2 - Using rtrim:

$source = array (1,2,3);
$total = count($source);

$str = null;

for($i=0; $i <= $total; $i++){ 
    
        $str .= $i.',';
}

$str = substr($str,0,strlen($str)-1);
echo $str; //0,1,2,3
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.