如何使函数在数组上执行preg_replace?

时间:2012-03-03 15:19:41

标签: php preg-replace

我正在使用此函数从url中删除一些变量:

function removeqsvar($url, $varname) {

    return preg_replace('/([?&])'.$varname.'=[^&]+(&|$)/','$1',$url);
}

当使用变量数组时,函数不起作用,我需要能够为函数提供变量数组。我怎么能这样做?

2 个答案:

答案 0 :(得分:1)

function removeqsvar($url, $varname) {
    if (is_array($url)) {
        $r = array();
        foreach ($url as $u) {
            array_push($r, preg_replace('/([?&])'.$varname.'=[^&]+(&|$)/','$1',$u));
        }
        return $r;
    }
    else {
        return preg_replace('/([?&])'.$varname.'=[^&]+(&|$)/','$1',$url);
    }
}

答案 1 :(得分:0)

假设它不是一个多维数组,这应该有效:

function removeqsvar($array, $varname){
    foreach($array as $key => $val){
        $array[$key] = preg_replace('/([?&])'.$varname.'=[^&]+(&|$)/','$1', $val);
    }
    return $array;
}