আমি স্ট্রিংয়ের শেষে কমাটি কীভাবে সরিয়ে দেব?


119

আমি একটি স্ট্রিংয়ের শেষে কমাটি সরিয়ে দিতে চাই। যেমনটি এখন আমি ব্যবহার করছি

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

তবে এটি কেবল স্ট্রিংয়ের শেষ চরিত্রটিকে সরিয়ে দেয়। আমি ডায়নামিকভাবে স্ট্রিং যুক্ত করছি, তাই কখনও কখনও স্ট্রিংয়ের শেষে কোনও কমা থাকে না। আমি পিএইচপি এর স্ট্রিং এর শেষে যদি কমা অপসারণ করতে পারি তবে এর শেষে যদি একটি থাকে?

উত্তর:


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

rtrimএখানে ডক্স


27
এটি একাধিক কমা মুছে ফেলবে: "a, b ,,," "a, b" হয়ে যাবে। ওপি যা চায় তা হোক না কেন আমি জানি না ...
গ্রেগ

1
আপনাকে ধন্যবাদ, আমি সাবস্টার, স্ট্রেন, ... দিয়ে সারা জীবন এই কাজটি করছিলাম
ফরহাদ

38

এটি দুটি ধরণের সমাধান সহ একটি ক্লাসিক প্রশ্ন। আপনি যদি ঠিক একটি কমা অপসারণ করতে চান, যা সেখানে থাকতে পারে বা নাও থাকতে পারে, ব্যবহার করুন:

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

আপনি যদি একটি লাইনের শেষে থেকে সমস্ত কমা অপসারণ করতে চান তবে আরও সহজ ব্যবহার করুন:

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

Rtrim ফাংশন (এবং বাম ট্রিমের সাথে সম্পর্কিত ltrim) খুব দরকারী কারণ আপনি মুছে ফেলার জন্য বিভিন্ন অক্ষর নির্দিষ্ট করতে পারেন, যেমনটি আপনি লিখেছেন কমা এবং পেছনের সাদা স্থান সরিয়ে ফেলতে:

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

বিস্তারিত ব্যাখ্যা করার জন্য আপনাকে ধন্যবাদ। যে জিনিস স্পষ্ট!
জেকডুড

12

আমি অনুমান করি আপনি লুপের মধ্যে কিছু জড় করছেন, যেমন

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

অ্যারেতে আইটেম সংগ্রহ করা এবং তারপরে আপনার প্রয়োজনীয় একটি ডিলিমিটারের সাথে এটি যোগ করা আরও ভাল

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

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

এটি পেছনের এবং ডাবল ডিলিমিটার সমস্যাগুলি সমাধান করে যা সাধারণত কনকেন্টেশন সহ ঘটে


ভাল পরামর্শ। তবে, সমস্ত কনটেক্সটেশন পিএইচপি-তে স্থান নিতে পারে না। আমার ক্ষেত্রে, আমি জাভাস্ক্রিপ্টের কনক্রিটেটেড স্ট্রিংটি পিএইচপিকে উচ্ছেদ করার জন্য পাঠাচ্ছি।
সাবেলফোস্টে

4

আপনি যদি লুপটিতে কিছু বোঝাচ্ছেন তবে আপনি এটিও এইভাবে করতে পারেন:

$coma = "";
foreach($a as $b){
    $string .= $coma.$b;
    $coma = ",";
}

2

rtrim ফাংশন একবার দেখুন

rtrim ($string , ",");

উপরের লাইনটি একটি চর মুছে ফেলবে যদি শেষ চরটি কমা হয়



1

একটি সাধারণ নিয়মিত প্রকাশ কাজ করবে would

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

2
বিকাশকারী কোনও সমস্যা সমাধানের জন্য নিয়মিত ভাব প্রকাশ করেন এবং এখন তার দুটি সমস্যা রয়েছে has
সিগুর্ড

1

rtrim ($ স্ট্রিং, ","); সবচেয়ে সহজ উপায়।


1

আমার স্ট্রিংয়ের শেষে আমার কাছে একটি জটিল "অদৃশ্য" স্থান ছিল এবং এটি করতে হয়েছিল to

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

তবে উপরের একটি সমাধান আরও ভাল

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

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