【问题标题】:using (unset) for multiple parameters对多个参数使用(未设置)
【发布时间】:2015-03-09 23:59:11
【问题描述】:

我在这里使用https://stackoverflow.com/a/27689796/3842368 的答案从 url 中去除几个参数。我以为它可以工作,直到今天我发现如果我定义了多个参数, unset() 就不起作用了。

我的 PHP 代码是:

$url = $_SERVER["REQUEST_URI"];
$x = $url;
$parsed = parse_url($x);
$query = $parsed['query'];
parse_str($query, $params);
unset($params['qdef, qval1']);
$string = http_build_query($params);

$params 正在使用 print_r 生成以下数组:

Array ( [use_url] => on [zipcode] => Axminster, Devon EX13 5RZ [categories] => Array ( [0] => 2 ) [radius] => 0 [checkboxnational] => 1 [submit] => 加载结果... [yesq] => y [qdef] => 2 [qval1] => 100.00 [qval2] => 525.00 [seasoning] => 1 [slider-value1] => 0 [slider-value2] => 70 [resultbar] => 25 [sortbar] => 距离 [lat] => 50.77643440000001 [lng] => -2.9810417 [swlat] => 50.7773526197085 [swlng] => -2.9814507999999478 [nelat] => 50.780050[ => -2.9749947000000247 [outcode] => EX13 ) 1

所以我遇到的问题是,如果我写unset($params['qdef']);,那么 qdef 会从 url 中删除,但如果我写 unset($params['qdef, qval1']);,则不会删除任何内容。我试过用逗号分隔它们,将每个参数括在“[]”中,没有任何效果。我尝试了很多方法来定义 unset() 命令中的参数,但没有任何效果。

有什么想法吗?

【问题讨论】:

  • unset($params['qdef'], $params['qval1']);
  • unset($params['qdef'], $params['qval1']);?
  • @MarkBaker - 你比我快一点 =)
  • @luke_mclachlan - 记得阅读文档。
  • 公众的白痴是大自然教我们不要再犯同样的错误的方式;)

标签: php unset


【解决方案1】:

$params['qdef']$params['qval1'] 是数组中的独立元素

使用

unset($params['qdef'], $params['qval1']);

单独取消设置

unset($params['qdef, qval1']); 

正在尝试使用 'qdef, qval1' 键从 $params 中取消设置单个元素

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多