首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >数组键值的preg_match部分

数组键值的preg_match部分
EN

Stack Overflow用户
提问于 2014-06-12 11:29:24
回答 3查看 2.6K关注 0票数 0

我试图找到一种方法来检查给定键的值是否存在于数组中(在foreach循环中)。

由于某些原因,它并不像预期的那样工作。

我的想法是,我已经知道键的名称,但只知道键的相关值的一部分。

假设我知道关键是"exampleKeyName“,并且它的值可能包含”matchValue“,也可能不包含”matchValue“,我就尝试这样做:

代码语言:javascript
运行
复制
foreach( $array as $key => $value) {
  if (stripos($array["exampleKeyName"], 'matchValue') !== false) { echo "matched"; }
}

这将返回“非法字符串偏移”。

然而,如果我这样做,它是有效的:

代码语言:javascript
运行
复制
foreach( $array as $key => $value) {
  if (stripos($value, 'matchValue') !== false) { echo "matched"; }
}

这里的问题是,我希望对查询更加具体,只检查键是否为"exampleKeyName“。

EN

Stack Overflow用户

发布于 2014-06-12 11:45:36

你离我们不远了,有几种方法可以做到。

在示例代码中,您不是检查key,而是在这两种情况下检查value。在执行类似于第二个代码示例中的for循环时,必须像这样更改if语句以检查key

代码语言:javascript
运行
复制
if (stripos($key, 'matchValue') !== false) { echo "matched"; }

由于我不知道它的应用程序是什么,我只会告诉您几种其他方法来实现这一点,也许它们也将有助于简化代码。

php有一个名为存在的助手函数,用于检查数组中是否存在给定的键或索引。结果是一个布尔值。如果您只需要知道数组是否包含索引或键,这是另一种方法。看起来是这样的:

代码语言:javascript
运行
复制
if( array_key_exists('matchValue', $array) ) { 
    print('Key exists');
} else {
    print('No key found');
}

如果您需要使用正则表达式,那么有一个很好的用于阵列正则搜索的grep算法键也可能有帮助。

票数 0
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24183249

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档