【问题标题】:remove last character from a string inside a loop in php从php中循环内的字符串中删除最后一个字符
【发布时间】:2013-02-17 19:48:21
【问题描述】:

我正在尝试使用 PHP 检查 VIN 号码是否有效。我正在使用for循环,如下所示

 $base='**********';
foreach ($params as $key => $value) {
    $query_string .= "$key=" . urlencode($value) . "&";
    }
$url = "$base?$query_string";

在这个我得到 & 作为最后一个字符,如下所示

&reportType=3&

我尝试使用下面的代码删除它,但它不起作用

substr($query_string, 0, -1);
 mb_substr($query_string, 0, -1);

帮我删除最后一个字符

【问题讨论】:

    标签: php string for-loop


    【解决方案1】:

    我认为您需要将结果分配回您的变量。

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

    【讨论】:

    • 这不是只获取 & 字符吗?
    • @ozkanozlu 不,请查看文档。直接从那里substr
    • 它将删除最后的所有内容,就像您的原件应该做的那样。
    • 是的,现在每个人都更改了答案以包括作业。我怎么是唯一一个抓住它的人? ://
    • @CaptainFord :) 非常感谢
    【解决方案2】:

    您可以使用rtrim

    $trimmed = rtrim($query_string, "&")
    

    将从末尾删除任何&。

    您的代码也可以工作,但您需要将其分配给一个变量,因为它返回一个新字符串。顺便说一句,与 rtrim 相同。

    【讨论】:

      【解决方案3】:
      $base='index.php';
      $params = array("key1"=>1,"key2"=>2,"key3"=>3,"key4"=>4);
      $size = count($params);
      $count = 1;
      foreach ($params as $key => $value) {
          $query_string .= "$key=" . urlencode($value);
          if($count < $size){
            $query_string .= "&";
          }
          $count++;
          }
      $url = "$base?$query_string";
      echo $url;
      

      //结果:index.php?key1=1&key2=2&key3=3&key4=4

      【讨论】:

        猜你喜欢
        • 2018-11-22
        • 1970-01-01
        • 2017-03-24
        • 1970-01-01
        • 2018-12-03
        • 2017-08-19
        相关资源
        最近更新 更多