从php中循环内的字符串中删除最后一个字符

时间:2013-03-03 18:51:00

标签: php string for-loop

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

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

在这个iam中获得 & 作为最后一个字符,如下所示

&reportType=3&

我试图使用下面的代码删除它,但它无法正常工作

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

帮我删除最后一个字符

3 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:1)

您可以使用rtrim

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

将从结尾删除任何&

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

答案 2 :(得分:1)

$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&amp; key2 = 2&amp; key3 = 3&amp; key4 = 4