Php 在每个循环的末尾添加字符串,但不在最后一个循环中添加

Php 在每个循环的末尾添加字符串,但不在最后一个循环中添加,php,Php,我正在创建一个函数来设置查询变量,如下所示 function set_query_var(array $params) { $count = count($params); $query_var = '?'; foreach ( $params as $key => $value) { $query_var .= $key . '=' . $value . (($count > 1) ? '&'

我正在创建一个函数来设置查询变量,如下所示

function set_query_var(array $params)
{
    $count = count($params);
    $query_var = '?';        

    foreach ( $params as $key => $value)
    {
        $query_var .= $key . '=' . $value .
        (($count > 1) ? '&' : NULL);
    }

    return $query_var;
}
上面的函数工作得很好,但唯一的问题是,它将
&
添加到我不想要的结束循环中


如何修复它?

一个简单而肮脏的解决方案是从字符串中删除最后一个
&

rtrim($string, "&");
将剪切尾随
&

我始终使用和数组:

function set_query_var(array $params)
{
    $count = count($params);
    $query_var = '?';        

    foreach ( $params as $key => $value)
    {
        $query_var .= $key . '=' . $value .
        (($count > 1) ? '&' : NULL);
    }
    $query_var = rtrim( $query_var, "&");
    return $query_var;
}
function set_query_var(array $params)
{
    $query_var = [];        

    foreach ($params as $key => $value) {
        $query_var[] = "{$key}={$value}";
    }

    return '?' . implode('&', $query_var);
}

看起来你在重新发明轮子:@AlmaDo+1,非常感谢。我不知道这个函数。这可能对我有用。。再次感谢。非常好的优化解决方案。谢谢。。。。顺便说一句,Alma Do也给了我很好的建议来使用内置函数。@CodeLover是的,但我的方法使用得更广泛,不仅仅是URL。我通常将其用于SQL
WHERE
语句。