在PHP中从多维数组生成URL

在PHP中从多维数组生成URL,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,我有下面的代码可以将数组转换为具有以下形式的url:$nopageurl='/no/page/url?&value1=value2=&value3=&value4=' foreach($_GET as $key => $value) { if(!in_array($key, array('page', 'a', 'sa', 'htaccess_key'))) { $nopageurl .= "{$key}={$value}&"; } } 但是,$\

我有下面的代码可以将数组转换为具有以下形式的url:
$nopageurl='/no/page/url?&value1=value2=&value3=&value4='

foreach($_GET as $key => $value) {
    if(!in_array($key, array('page', 'a', 'sa', 'htaccess_key'))) {
        $nopageurl .= "{$key}={$value}&";
    }
}
但是,$\u GET数组的形式如下:

Array
(
 [value1] => 0
 [value2] => Array
    (
        [0] => 3113
        [1] => 3114
    )

 [value3] =>2
 [value4] =>status
);

这会导致错误
E\u注意:数组到字符串的转换
。我该怎么做才能避免这个错误

作为开发人员,您需要解决与用户输入有关的所有可能性。您可以限制输入,但需要验证输入(示例中不允许使用子数组),或者需要解决这些问题并为这些特定情况找到解决方案

您需要考虑A参数也可以是数组的选项。 因此,只需添加一个条件来检查参数是否是数组,如果是,则根据需要处理它。例如:

foreach($_GET as $key => $value) {
    if(!in_array($key, array('page', 'a', 'sa', 'htaccess_key'))) {
        if(is_array($key)){
           foreach($key as $k => $v){
             $nopageurl .= "{$key}[$k]={$v}&";
           }
        } else {
           $nopageurl .= "{$key}={$value}&";
        }
    }
}

以下是另一种有效的方法:

foreach($_GET as $key => $value) {
    if(!in_array($key, array('page', 'a', 'sa', 'htaccess_key'))) {
        if(is_array($value)){
            foreach($value as $k => $v){
                $nopageurl .= "{$key}[$k]={$v}&";
            }
        } else {
            $nopageurl .= "{$key}={$value}&";
        }
    }
}

首先从数组中筛选出不需要的元素(而不是在数组中使用
),然后使用what-you-want作为value2的输出?我确实使用了
http\u build\u query
,但是:我需要数组中的所有元素,我需要url的最后一个参数。这部分仍然给出了
数组到字符串的转换
错误:
else{$nopageurl.=“{$key}={$value}&”;}
您最终成功地解决了它还是仍然不起作用?我使用了下面的语法(我的答案)。谢谢你的宝贵帮助?