php - in_array 函数总是返回 false
问题描述
我有一个数组,当使用 in_array 检查对象是否存在时,它总是返回 false。
例如,这里是数组:
array:1 [
0 => "name1, name2, name3"
]
这就是我检查索引是否存在的方式
if(!in_array('name1', $array)) { return FALSE; } else { return TRUE;}
Name1 存在于我的数组中,但是我认为我在这里遗漏了一些小东西。
不确定它可能是什么,或者即使这个函数是用来检查的正确函数?预期结果是真实的,因为对象存在。
谢谢
解决方案
由于您的数组只有一个带有长字符串的项目,因此 in_array 会返回 false,因为没有完全匹配。
您可以做的是使用 preg_grep ,它是数组的正则表达式。
var_dump(preg_grep("/name1/i", $arr));
您可以将它与 bool return 一起使用,如下所示:
if(preg_grep("/name1/i", $arr)){
echo "true";
}else{
echo "false";
}
因为如果没有找到 preg_grep 则返回空。
在 if() 中,空数组意味着 false。
推荐阅读
- reactjs - 列出不呈现数据
- wordpress - 如何查找和编辑自定义端点。在 wordpress 中休息 api
- javascript - ReactJS - 关于动态路由的问题
- react-native - 键盘覆盖屏幕的一半
- android - 在使用毕加索在通知中显示位图图像时,我收到“无法创建带有消息'未实现'的图像解码器”错误
- office365 - 如何通过office365 api为用户添加多个角色?
- javascript - 在 React 中保存编辑好的表单后自动刷新页面
- java - 无法在junit 5中使用@ContextConfiguration创建用于测试的bean
- pdf - 使用从服务 api 接收的 s3 签名 url 在浏览器中显示 PDF
- react-native - 如何在 React Native 中测量视图的开始和结束 'x' 和 'y' 坐标