【问题标题】:How do I remove a comma off the end of a string?如何删除字符串末尾的逗号?
【发布时间】:2009-10-29 10:14:34
【问题描述】:

我想删除字符串末尾的逗号。现在我正在使用

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

但这只会删除字符串的最后一个字符。我是动态添加字符串,所以有时字符串末尾没有逗号。如果字符串末尾有逗号,我如何让 PHP 从字符串末尾删除逗号?

【问题讨论】:

    标签: php


    【解决方案1】:
    $string = rtrim($string, ',');
    

    Docs for rtrim here

    【讨论】:

    • 这将删除多个逗号:“a,b,,”将变为“a,b”。这是否是 OP 想要的,我不知道......
    • 谢谢,我一生都在用 substr、strlen 做这件事
    【解决方案2】:

    这是一个经典问题,有两种解决方案。如果您想删除一个逗号,可能存在也可能不存在,请使用:

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

    如果您想从行尾删除所有逗号,请使用更简单的:

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

    rtrim 函数(以及用于左修剪的相应 ltrim)非常有用,因为您可以指定要删除的字符范围,即删除您要编写的逗号和尾随空格:

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

    【讨论】:

      【解决方案3】:

      我猜你在循环中连接一些东西,比如

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

      更好的是收集数组中的项目,然后将它与您需要的分隔符连接起来

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

      这解决了通常在连接中出现的尾随和双分隔符问题

      【讨论】:

      • 好建议。然而,并不是所有的连接都可以在 PHP 中进行。就我而言,我正在发送一个 Javascript 连接的字符串供 PHP 解开。
      • 这很漂亮,现在我必须重写所有内容。不敢相信我竟然忽略了这么简单直接的答案
      【解决方案4】:

      如果你在循环中连接一些东西,你也可以这样做:

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

      【讨论】:

        【解决方案5】:

        看看rtrim函数

        rtrim ($string , ",");
        

        如果最后一个字符是逗号,上述行将删除一个字符

        【讨论】:

          【解决方案6】:
          if(substr($str, -1, 1) == ',') {
          
            $str = substr($str, 0, -1);
          
          }
          

          http://php.net/manual/en/function.substr.php

          【讨论】:

            【解决方案7】:

            一个简单的正则表达式就可以了

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

            【讨论】:

            • 开发者使用正则表达式解决一个问题,现在他有两个问题。
            【解决方案8】:

            rtrim ($string, ",");是最简单的方法。

            【讨论】:

              【解决方案9】:

              我的字符串末尾有一个讨厌的“不可见”空间,我不得不这样做

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

              但上面的解决方案更好

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

              【讨论】:

                【解决方案10】:

                在前面加上:

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

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 1970-01-01
                  • 2013-08-30
                  • 2012-05-20
                  • 1970-01-01
                  • 1970-01-01
                  • 2019-01-10
                  • 1970-01-01
                  • 1970-01-01
                  相关资源
                  最近更新 更多