首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在php中筛选数组中的特定列

问在php中筛选数组中的特定列
EN

Stack Overflow用户
提问于 2017-08-07 09:13:50
回答 3查看 109关注 0票数 0

我试图使用下面的代码在php中筛选数组中的特定列:

代码语言:javascript
复制
(strpos( 'meeting',$event['categories'] ) == false )

它实际上不起作用。分类的一个例子是:

$event['categories'] = 'meeting;skype'

提前感谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-08-07 09:26:00

您需要将参数翻转到strpos()

代码语言:javascript
复制
if (strpos($event['categories'],  'meeting') === false) {
    echo $event['categories'] . ' does not contain "meeting"';
}

另外,使用严格比较(=== vs ==),因为meeting可能在字符串的开头,然后strpos()将返回0,这将计算为false (在这种情况下这是错误的)。

关于参考,见:

例如,见:

票数 4
EN

Stack Overflow用户

发布于 2017-08-07 09:24:46

我认为您应该使用===而不是==,也可以翻转参数。

代码语言:javascript
复制
(strpos($event['categories'] , 'meeting') === false )

strpos可以返回0或false,当您使用==时,零就像false一样。

请参阅压缩算子

请参阅文档

票数 0
EN

Stack Overflow用户

发布于 2017-08-07 09:53:36

代码语言:javascript
复制
<?php

$event = ['categories' => 'meeting;skype'];
$needle = 'meeting';
$haystack = $event['categories'];
if( ($pos = strpos( $haystack, $needle )) === false){
   echo "\n$needle not found in $haystack";
} 
else
{
     echo "\n$needle exists at position $pos in $haystack";
}

请参阅演示

需要注意的两件事是strpos()参数的顺序,以及使用标识运算符("===")进行严格比较,这样当‘==’出现在'haystack‘的零位置时,如果使用相等运算符("=="),就不会被错误地认为是错误的结果,因为在PHP零== false中。

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

https://stackoverflow.com/questions/45543317

复制
相关文章

相似问题

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