本文介绍如何在 php 中判断某个子字符串是否出现在数组的任意元素中,而非严格匹配整个数组元素,提供可复用的函数、完整示例及关键注意事项。
在 PHP 开发中,in_array() 只能进行完全相等匹配(即 $string === $array[i]),无法满足“查找子串是否存在于数组某元素内”的需求。例如,给定数组 ["hello", "world", "!"] 和关键词 "wor",我们期望返回 true(因为 "wor" 是 "world" 的子串),但 in_array("wor", $array) 会返回 false。
为此,需手动遍历数组,对每个元素使用 strpos() 进行子串搜索。以下是一个健壮、可复用的封装函数:
function containsSubstringInArray(array $array, string $substring):bool { foreach ($array as $item) { if (is_string($item) && strpos($item, $substring) !== false) { return true; } } return false; } // 使用示例 $array = ["hello", "world", "!"]; $string = "wor"; if (containsSubstringInArray($array, $string)) { echo "match"; } else { echo "not match"; // 此处不会执行 }
✅ 优势说明:
⚠️ 注意事项:
$matches = preg_grep('/\b' . preg_quote($string, '/') . '\b/i', $array);
if (!empty($matches)) { /* 找到完整单词匹配 */ }总结:子串存在性检查不能依赖 in_array(),而应结合 foreach 与 strpos()(或 stripos())手动实现。封装为纯函数不仅提升代码复用性,也增强可读性与可维护性。
# php
# ai
# 代码复用
# String
# Array
# strpos
# if
# foreach
# 封装
# 字符串
# 数据库
# 关键词
# 复用
# 是一个
# 如有
# 出现在
# 遍历
# 适用于
# 而非
# 如需
# 是否存在
相关栏目:
【
Google疑问12 】
【
Facebook疑问10 】
【
网络优化76771 】
【
技术知识130152 】
【
IDC云计算60162 】
【
营销推广131313 】
【
AI优化88182 】
【
百度推广37138 】
【
网站推荐60173 】
【
精选阅读31334 】
相关推荐:
Python安全爬虫设计_IP代理池与验证码识别策略解析
如何在 Django 中安全修改用户密码而不使会话失效
PHP接收参数长度超限怎么办_修改postmaxsize设置教程【解答】
如何在Mac上搭建Golang开发环境_使用Homebrew安装和管理Go版本
Linux如何使用grep搜索文件内容_Linux下正则表达式匹配与查找技巧【指南】
如何在Windows上设置闹钟和计时器_系统自带的时钟应用全攻略【生活技巧】
Win10如何卸载WindowsDefender_Win10卸载Defender教程【方法】
Win10怎样卸载DockerDesktop_Win10卸载DockerDesktop步骤【步骤】
如何使用Golang实现文件加密_Golang crypto 文件加密示例
Windows10怎么用“讲述人”读屏辅助 Windows10轻松使用开启讲述人朗读屏幕文字帮助视障用户【教程】
Win11输入法切换快捷键怎么改_Windows 11自定义语言切换键位【教程】
Windows10怎样设置家长控制_Windows10家长控制设置方法【指南】
如何在 ACF 中正确更新嵌套多层 Group 字段内的子字段
PythonWeb前后端整合项目教程_FastAPIReact完整实例
Avalonia如何实现跨窗口通信 Avalonia窗口间数据传递
php内存溢出怎么排查_php内存限制调试与优化方法【说明】
PHP 中如何在函数内持久化修改引用变量的指向
ACF 教程:正确更新嵌套在多层 Group 字段内的子字段
c++如何打印函数堆栈信息_c++ backtrace函数与符号名解析【方法】
Win11怎么更改默认打开方式_Win11关联文件格式教程【详解】
Win10如何备份注册表_Win10注册表备份步骤【攻略】
如何在Golang中捕获结构体方法错误_Golang方法返回error处理实践
Win11声音忽大忽小怎么办 Win11音频增强功能关闭教程【修复】
Windows10系统服务优化指南_Win10禁用不必要服务提升性能
php增删改查在php8里有什么变化_新特性对curd的影响【指南】
Windows10如何更改开机密码_Win10登录选项更改密码教程
c++的static关键字有什么用 静态变量和静态函数的应用场景【教程】
php高频调试功能有哪些_php常用调试函数与工具汇总【解答】
Win11怎么查看局域网电脑_Windows 11网络邻居发现设置【技巧】
php8.4如何实现队列任务_php8.4redis队列简单实现方法【教程】
如何在 Go 中可靠地测试含 time.Time 字段的结构体
如何测试您的网站全球打开速度-网站海外测速工
Python项目回滚策略_发布安全说明【指导】
Win11怎么清理C盘下载文件夹_Win11清理下载文件夹技巧【教程】
如何在 PHP 中按相同键合并两个关联数组为二维数组
如何使用正则表达式批量替换重复的“-”模式为固定字符串
如何在 Go 中比较自定义的数组类型(如 [20]byte)
Win11怎么格式化U盘_Win11系统U盘格式化与文件系统选择【教程】
如何提升Golang程序I/O性能_Golang I/O密集型程序优化示例
Win11怎么恢复旧版开始菜单_通过软件还原Win10风格菜单【详解】
Dapper的Execute方法的返回值是什么意思 Dapper Execute返回值详解
Win11如何设置环境变量 Win11添加和修改系统与用户变量【教程】
Win10系统怎么查看显卡温度_Win10任务管理器GPU温度
如何使用Golang反射将map转换为struct_Golang reflect类型映射技巧
Python随机数生成_random模块说明【指导】
如何使用Golang实现跨域请求支持_Golang CORS配置与处理方法
C++如何使用std::async进行异步编程?(future用法)
php在Linux怎么部署_LNMP环境搭建PHP服务的详细指南【指南】
怎么将XML数据可视化 D3.js加载XML
Windows10系统怎么查看硬盘健康_Win10 SMART信息检测工具
2026-01-02
致胜网络推广营销网专注海外推广十年,是谷歌推广.Facebook广告全球合作伙伴,我们精英化的技术团队为企业提供谷歌海外推广+外贸网站建设+网站维护运营+Google SEO优化+社交营销为您提供一站式海外营销服务。