在PHP中从多维数组生成URL
我有下面的代码可以将数组转换为具有以下形式的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}&"; } } 但是,$\
$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}&”;}
您最终成功地解决了它还是仍然不起作用?我使用了下面的语法(我的答案)。谢谢你的宝贵帮助?