新闻中心
php中array_intersect_key按 key取交集_php保留指定键的数组筛选与合并技巧
array_intersect_key()用于按键名比较数组并返回交集,常用于筛选允许字段、合并配置及清洗参数。1. 保留第一个数组中其他数组也存在的键名对应元素;2. 结合array_flip()实现白名单过滤表单数据;3. 与+操作符配合合并配置并限制合法键;4. 支持多数组求共同键名,如三个数组共有的键b和c被保留。

在 PHP 中,array_intersect_key() 是一个非常实用的函数,它根据键名(key)来比较多个数组,并返回交集部分。这个函数特别适合用于“保留指定键的数组”场景,比如从用户提交的数据中筛选出允许的字段,或合并配置项时只保留有效键。
array_intersect_key 基本用法
该函数会保留第一个数组中与其他数组拥有相同键名的元素,值保持不变,仅以键名为判断依据。
语法:
array array_intersect_key ( array $array1 , array $array2 [, array $... ] )
示例:
$data = ['name' => 'Alice', 'age' => 25, 'email' => 'alice@example.com', 'city' => 'Beijing'];$allowed = ['name' => 1, 'email' => 1, 'city' => 1]; // 键表示允许的字段
$filtered = array_intersect_key($data, $allowed);
print_r($filtered);
输出结果:
Array
(
[name] => Alice
[email] => alice@example.com
[city] => Beijing
)
可以看到,只有 name、email、city 这些在 $al
lowed 中出现的键被保留下来,age 被过滤掉了。
筛选表单数据:只保留允许的字段
在实际开发中,接收用户 POST 数据后,通常需要过滤掉非法或不期望的字段,防止恶意注入。这时可以用 array_intersect_key 快速实现白名单机制。
$post = $_POST; // 假设用户提交了 name, age, token, role 等字段$whitelist = array_flip(['name', 'email', 'phone']); // 将字段名转为键
$safe_data = array_intersect_key($post, $whitelist);
这里使用 array_flip() 把字段列表变成键名为允许字段的数组,再与原始数据取交集,即可完成安全筛选。
GoEnhance
全能AI视频制作平台:通过GoEnhance AI让视频创作变得比以往任何时候都更简单。
347
查看详情
合并配置并保留指定结构
当你有默认配置和用户自定义配置时,可以使用 array_intersect_key 确保最终配置只包含预定义的键,避免意外参数干扰。
$default = ['host' => 'localhost',
'port' => 3306,
'username' => 'root',
'password' => '',
'charset' => 'utf8'
];
$custom = [
'host' => '192.168.1.100',
'username' => 'admin',
'extra' => 'ignored_value' // 不会被保留
];
$config = array_intersect_key($custom + $default, $default);
说明:
- $custom + $default:先合并,自定义值优先
- 再用 array_intersect_key(..., $default) 确保只保留合法键
- 即使 $custom 包含 extra 字段,也会被自动剔除
多数组键交集:找出共同配置项
如果有多个数组,想找出它们共有的键,也可以用此函数:
$arr1 = ['a' => 1, 'b' => 2, 'c' => 3];$arr2 = ['b' => 4, 'c' => 5, 'd' => 6];
$arr3 = ['c' => 7, 'a' => 8, 'b' => 9];
$common = array_intersect_key($arr1, $arr2, $arr3);
print_r($common);
输出:
Array
(
[b] => 2
[c] => 3
)
只有键 b 和 c 在三个数组中都存在,因此被保留。
基本上就这些。合理使用 array_intersect_key 可以让数组筛选更安全、简洁,尤其适合做字段过滤、配置合并、API 参数清洗等任务。关键是理解它“按 key 判断,保留值”的逻辑,配合 array_flip 或 + 操作符,能写出清晰高效的代码。
以上就是php中array_intersect_key按 key取交集_php保留指定键的数组筛选与合并技巧的详细内容,更多请关注其它相关文章!
# php
# 第一个
# 现在网站推广还能做嘛
# 山东seo是什么公司的
# 陪诊师营销推广策略研究
# seo放心投
# 强的景区营销推广
# 深圳做seo推广哪家好
# 四川搜索引擎关键词排名怎么做
# 辽阳seo推广如何操作
# 中秋灯谜网站推广策划
# 关键词排名高但点击不高
# 你有
# 也会
# 表单
# 自定义
# 组中
# 可以用
# 多个
# 上传
# 键名
# red
# ai
# word
相关栏目:
【
科技资讯46185 】
【
网络学院92790 】
相关推荐:
163邮箱注册官网 免费申请163个人邮箱
Win11怎么修改默认浏览器_Windows 11设置Chrome为默认
如何在低配置电脑上搭建轻量级J*a环境_占用更小的环境选择技巧
一加手机拍照效果不好怎么办 一加哈苏影像调校与专业模式使用教程【高手篇】
《刺客信条4:黑旗》重制版新细节曝光:无缝加载 地图更细致!
如何提高微信支付的安全性_微信支付安全防护与设置建议
如何为你的Composer包编写自动化测试_集成PHPUnit到Composer的scripts工作流
CSS Grid如何控制元素对齐_align-items与justify-items组合使用
台积电1.4nm工艺A14瞄准2028:10年来性能提升80%
在命令行怎么运行html项目_命令行运行html项目方法【教程】
ExcelARRAYTOTEXT函数怎么自定义分隔符输出数组文本_ARRAYTOTEXT实现动态生成SQL语句
必由学官方登录入口 必由学教师学生账号快速访问
在J*a中如何开发简易博客标签推荐系统_博客标签推荐项目实战解析
Golang指针如何与map组合使用_Golang map指针组合实践
C++的std::mdspan是什么_C++23中用于操作多维数组的非拥有视图
Win10磁盘清理工具在哪 Win10打开并使用磁盘清理【教程】
12306选座系统怎么选连座_12306选座多人连坐操作方法
蛙漫安全无毒 官方认证的绿色入口
qq游戏网页版直接玩_qq游戏免下载快速入口
C#使用XPath查询节点时出错? 常见语法错误与调试技巧
Yandex免登录网页版地址 Yandex搜索引擎官方访问入口
Win10如何清理注册表垃圾 Win10注册表维护与优化指南【慎用】
word中如何让数字纵向排列_Word数字纵向排列方法
网易大神账号申诉需要多久_网易大神账号申诉流程说明
抖音未来赚钱的新趋势 2025年值得关注的变现风口分析
UC浏览器如何安装插件 UC浏览器添加扩展程序详细教程【进阶】
为什么简单的XML文件也会解析失败? 检查隐藏的非打印字符(如BOM)的方法
汽水音乐在线解析 汽水音乐在线解析入口
126邮箱手机版登录官网2026_126手机邮箱免费入口最新
深入理解J*a链表中的IPosition接口与使用
html两个JS只运行一个怎么办_让双JS在html中都运行方法【技巧】
响应式图片在网页设计中的正确实现方法
win11 Snap Layouts怎么用 Win11窗口布局与分屏多任务高效指南【必学】
win11专注助手在哪 Win11免打扰模式设置与自动化规则【指南】
谷歌推RCS信息存档功能:公司可监控员工私密信息!
凉拌黄瓜怎么拌更入味 凉拌黄瓜简单家常做法
Yandex搜索引擎官网入口_俄罗斯Yandex免登录一键直达
J*aScript中高效清空DOM列表元素:解决for循环中断与任务管理问题
字由网在线版登录地址 字由网网页版安全入口
电脑安装程序提示“错误1722”怎么办_Windows Installer服务问题解决【教程】
网站内容防复制粘贴的实现策略与局限性
谷歌浏览器怎么给标签页静音_Chrome标签静音快捷操作
微博网页版怎么开启两步验证_微博网页版账号安全两步验证设置方法
电脑IP地址怎么查 查看本机IP地址的几种方法
如何将一个大型PHP应用拆分为多个Composer包_微服务与模块化架构的Composer实践
steam官方网页快速访问 steam账号注册全流程
动漫花园资源网使用步骤_动漫花园资源网下载流程
QQ邮箱官方网站登录入口_QQ邮箱网页版在线使用
特斯拉自动驾驶房车计划曝光 原型车将于2027年亮相
知音漫客正版漫画平台_知音漫客官网账号登录


2025-11-28
浏览次数:次
返回列表