আমি পিএইচপি ব্যবহার করে স্ট্রিং থেকে শেষ কমাটি কীভাবে সরিয়ে দেব?


99

আমি আমার ডাটাবেস থেকে মান পেতে একটি লুপ ব্যবহার করছি এবং আমার ফলাফলটি এরকম:

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

এবং আমি এটি এর মতো চাই:

'name', 'name2', 'name3'

আমি লুপের শেষ মানের পরে কমাটি সরিয়ে ফেলতে চাই।


11
implodeকমা দিয়ে আপনার আপনার মূল মানগুলি উচিত , সেগুলি লুপ না করে এবং স্টাফটি শেষে সরিয়ে দেওয়া উচিত।
moonwave99

উত্তর:


220

rtrimফাংশনটি ব্যবহার করুন :

rtrim($my_string, ',');

দ্বিতীয় প্যারামিটারটি মুছে ফেলা অক্ষরকে নির্দেশ করে।


27
এছাড়াও নিশ্চিত করুন যে কমা পরে আপনার কোনও চলমান স্থান নেই, অন্যথায় এটি ব্যর্থ হবে, বা rtrim (ট্রিম ($ my_string), ',') করবে।
ফক্সহাউন্ডন

দুর্দান্ত উত্তর!
ডিক্রিস্ট

@ ফক্সহাউন্ডন আপনার মন্তব্যটি ত্রাণকর্তা। ধন্যবাদ ভাই
জয়দীপ গোস্বামী

4
এটি এমন লুপে কাজ করে না যা শেষে কমা যুক্ত করে এটি সমস্ত কমাগুলি সরিয়ে দেবে।
টিকটিকি

25

চেষ্টা করুন:

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

4
আমি ইতিমধ্যে এটি চেষ্টা করেছি তবে এটি এর মতো দেখাচ্ছে: 'name''name2''name3' এটি আমার যা প্রয়োজন তা নয়
JoJo

আপনার উদাহরণ অনুসারে, আপনাকে এই ফাংশনটি কেবলমাত্র চূড়ান্ত ফলাফলের জন্য প্রয়োগ করতে হবে এবং প্রতিটি মান পৃথকভাবে নয়।
বোয়াজ

আমি লুপটি ব্যবহার করছি তাই আমি কীভাবে লুপের চূড়ান্ত ফলাফল জানতে পারি?
জোজো

লুপের চূড়ান্ত ফলাফলটি একটি ভেরিয়েবলে সংরক্ষণ করা হয়, তাই না? সুতরাং rtrimসেই পরিবর্তনশীলটিতে কল প্রয়োগ করুন । যদি আপনার এখনও সমস্যা হয় তবে লুপ তৈরির কোডটি দিয়ে আপনার প্রশ্নটি আপডেট করুন।
বোয়াজ

আমি এই উত্তরটি বিশেষত পছন্দ করি, কারণ অনেকগুলি পিএইচপি অন্তর্নির্মিত ফাংশনগুলির সাথে একটি বিষয় হ'ল তার মধ্যে কিছুটি শূন্য, এবং তাদের কিছুতে রিটার্নের ধরণ রয়েছে। এই ক্ষেত্রে, আমি কেবল লেখার চেষ্টা করছিলাম rtrim($string, ','), যখন আমার লেখা উচিত$string = rtrim($string, ',');
আলেক

14

নীচের কোডটি ব্যবহার করে দেখুন:

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

স্ট্রিংয়ের শেষ অক্ষরটি সরাতে এই কোডটি ব্যবহার করুন।





4

আপনি যে মাল্টি-বাইট টেক্সট থেকে সাবস্ট্রিং করেছেন তার সাথে কাজ করলে এটি আপনার স্ক্রিপ্টকে প্রভাবিত করবে। যদি এটি হয় তবে আমি আপনার php.ini এ এমবি_ * ফাংশন সক্রিয় করার বা এটি করার পরামর্শ দিচ্ছিini_set("mbstring.func_overload", 2);

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



2

এই উদ্দেশ্যে ইমপ্লোড ব্যবহার করা ভাল। ইমপ্লোড সহজ এবং দুর্দান্ত:

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

আউটপুট:

    name1, name2, name3

ডাটাবেস-পঠিত মানগুলির আগে প্রথমে একটি অ্যারে তৈরি করা অসতর্ক। rtrim এবং substr উভয়ই বৈধ - এবং ভাল - সমাধান।
স্টিভ হরভাথ

ঠিক আছে, আপনি ঠিক বলেছেন তবে আপনার যদি অ্যারে থাকে তবে এটি একটি সহজ সমাধান
খানদানিলে

2

শেষ কমাটি অপসারণ করতে আপনি নীচের একটি কৌশল ব্যবহার করতে পারেন (,)

সমাধান 1:

$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
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.