You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何批量过滤掉所有值为1的$_GET变量?

如何批量过滤掉所有值为1的$_GET变量?

嘿,我太懂你不想写一堆重复判断的心情了!一个个写$_GET['xxx'] != 1确实又繁琐又容易漏,PHP里有个现成的数组函数能轻松搞定这个需求——array_filter()。

你之前尝试的array_values($_GET) != 1逻辑不对哦,因为array_values($_GET)会把所有参数值打包成一个新数组,拿数组和单个值1比较永远都会返回false,所以肯定不生效。

给你两个简单的实现方式:

方式一:生成新的过滤后数组

如果不想修改原$_GET数组,可以生成一个新数组来存过滤后的参数:

// 过滤掉所有值为'1'的GET参数,用严格不等于避免类型转换带来的问题
$filteredGet = array_filter($_GET, function($value) {
    return $value !== '1';
});

之后你需要使用参数的时候,直接用$filteredGet就行,比如判断article参数是否存在就用isset($filteredGet['article'])。

方式二:直接修改原$_GET数组

要是之后想直接用$_GET来获取过滤后的参数,直接覆盖原数组就行:

// 直接替换原$_GET数组,过滤掉值为1的参数
$_GET = array_filter($_GET, function($value) {
    return $value !== '1';
});

举个实际例子,假设原$_GET是这样的:

$_GET = [
    'article' => '123456',
    'search' => 'bill',
    'add_archive' => '1',
    'category' => 'general'
];

经过上面的过滤后,剩下的参数就只有article、search和category,完美排除了所有值为1的项。

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.08 10:42:59