新闻中心
php中preg_grep筛选匹配数组元素_php正则过滤数组值与保留键值对应方法
preg_grep用于正则筛选数组元素并保留键值关系,其语法为preg_grep($pattern, $input, $flags),支持正向与反向匹配。例如筛选Gmail邮箱时保留原键名,或使用PREG_GREP_INVERT排除匹配项,亦可过滤数字字符串等,适用于需精准控制数据结构的场景。

在PHP中,preg_grep 函数用于使用正则表达式筛选数组中的元素。它能根据匹配规则过滤出符合条件的值,并且保留原始数组的键值对应关系,非常适合需要精准控制数据结构的场景。
preg_grep 基本用法
函数语法如下:
preg_grep($pattern, $input, $flags = 0)
-
$pattern:要匹配的正则表达式,必须是字符串形式,通常以 `/` 包裹,例如
/^abc/ - $input:待筛选的数组
-
$flags:可选参数,如
PREG_GREP_INVERT表示反向匹配(返回不匹配的元素)
返回一个新的数组,包含匹配(或不匹配)的元素,同时保持原有的键名。
保留键值对应的实际示例
假设有一个用户邮箱列表,我们想筛选出所有 Gmail 邮箱:
$emails = [
'user1' => 'alice@gmail.com',
'user2' => 'bob@yahoo.com',
'user3' => 'carol@gmail.com',
'user4' => 'd*e@outlook.com'
];
$gmails = preg_grep('/@gmail\.com$/', $emails);
// 输出结果
print_r($gmails);
输出为:
Array
(
[user1] => alice@gmail.com
[user3] => carol@gmail.com
)
可以看到,匹配成功的元素不仅保留了值,还完整保留了原始的键名,这在处理关联数组时非常有用。
反向筛选:排除匹配项
如果想获取非 Gmail 的邮箱,可以使用 PREG_GREP_INVERT:
Motiff妙多
Motiff妙多是一款AI驱动的界面设计工具,定位为“AI时代设计工具”
334
查看详情
$not_gmail = preg_grep('/@gmail\.com$/', $emails, PREG_GREP_INVERT);
结果将包含 yahoo 和 outlook 邮箱,同样保留原有键名。
匹配数字数组中的特定格式
也可以用于索引数组,比如筛选出所有整数:
$mixed = [1, '2', '3.5', 'hello', 4, '5'];
$integers = preg_grep('/^\d+$/', $mixed);
print_r($integers);
输出:
Array
(
[0] => 1
[1] => 2
[4] => 4
[5] => 5
)
注意:虽然值是数字字符串,但通过正则判断是否只含数字,也能有效过滤。
基本上就这些。preg_grep 在需要正则过滤数组又不想打乱键值关系时非常实用,写起来简洁,逻辑清晰。
以上就是php中preg_grep筛选匹配数组元素_php正则过滤数组值与保留键值对应方法的详细内容,更多请关注其它相关文章!
# 也能
# 简单网站建设教程
# 视频营销型网站建设包括
# seo欣赏网
# 福田网站建设方案策划书
# 江门高沙码头网站建设
# 本溪专业seo电话
# 荆门seo推广开户
# 福州SEO驭明网络
# 常德seo优化费用多少
# 百捷媒体推广网站官网首页
# 相关文章
# 适用于
# php
# 留了
# 键名
# 上传
# 数据结构
# 组中
# 键值
# 键值对
# 邮箱
# outlook
# ai
# 正则表达式
相关栏目:
【
科技资讯46185 】
【
网络学院92790 】
相关推荐:
J*a里如何实现订单支付与库存同步功能_支付库存同步项目开发方法说明
b站如何看历史记录_b站观看历史找回方法
Go语言中Map值调用指针接收器方法的限制与应对
J*aScript井字棋(Tic-Tac-Toe)核心交互逻辑实现教程
Django AJAX 文件上传教程:解决图片无法保存到模型的常见问题
俄罗斯浏览器官网直达链接 俄罗斯浏览器最新在线入口导航
蛙漫移动版在线看 蛙漫手机浏览器直达入口
俄罗斯Yandex免登录入口_Yandex搜索引擎官网一键直达
CSS图片焦点样式实现教程:理解与应用tabindex属性
微博网页版直接访问 微博网页版账号管理快速入口
《刺客信条4:黑旗》重制版新细节曝光:无缝加载 地图更细致!
win11 Snap Layouts怎么用 Win11窗口布局与分屏多任务高效指南【必学】
jQuery Mask 插件中实现电话号码固定前导零的教程
mysql密码锁定怎么解锁_mysql密码锁定解锁后修改密码步骤
NVIDIA股价11月重挫12%:下月有望好转 但难回5万亿美元巅峰
Win11怎么设置鼠标主按键_Win11鼠标左右键功能互换
探索高级语言到C/C++的转译路径:以Go为例及内存管理策略
在React函数组件中利用原生HTML5进行邮箱地址验证
腾讯QQ邮箱登录入口_QQ邮箱官方网站使用地址
C++如何生成随机数_C++ random库使用方法与范围设置
抓大鹅解压小游戏 抓大鹅摸鱼解压入口
CSS Flexbox如何实现多行排列_flex-wrap wrap自动换行显示
Angular中单选按钮的正确使用与常见陷阱解析
HuggingFaceEmbeddings中向量嵌入维度调整的限制与理解
为什么简单的XML文件也会解析失败? 检查隐藏的非打印字符(如BOM)的方法
J*aScript类型检查_j*ascript代码规范
yy漫画网页版官方入口_yy漫画官网登录页面链接
漫蛙Manwa2官网入口地址分享 漫蛙漫画PC版永久访问通道
word邮件合并后日期格式不对怎么改_Word邮件合并日期格式修改方法
韩小圈电脑版在线入口_网页版免费登录地址
妖精漫画网页版登录入口免费_妖精漫画官网主页直接阅读漫画
京东京造J1和网易云音乐氧气真无线有什么不同_国产电商蓝牙耳机音质对比
Node.js CSV 数据处理:基于字段值条件过滤整条记录的策略
使用 Pandas 高效处理 .dat 文件:数据清洗与数值计算实战
漫蛙manwa官网登录界面_漫蛙漫画网页版主站入口
Shopware订单对象中获取产品自定义字段的正确方法
steam官方网页快速访问 steam账号注册全流程
响应式CSS Grid布局:优化网格项在小屏幕下的堆叠与宽度适配
必由学官网快捷入口 必由学网页版在线学习平台
Composer如何在生产环境安全地执行composer update
Web Components中自定义开关组件状态同步的常见陷阱与解决方案
天猫双十一预售商品怎么退款_天猫双十一预售退款操作指南
Golang如何使用new_Go new分配内存机制讲解
小米Civi 4录制视频过暗_小米Civi 4亮度优化
快手网页版在线登录 快手网页版官网入口快速访问
小红书怎么解除第三方平台绑定_小红书多平台登录解绑方法介绍
Win11怎么关闭快速启动_Win11彻底关机设置教程
163邮箱网页版入口导航平台 163邮箱网页版登录入口官网导航
修复二维数组索引越界异常:一维循环到二维坐标的正确映射
如何使用spryker/configurable-bundles-products-resource-relationship模块解决复杂产品捆绑关系难题


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