我试图使用下面的代码在php中筛选数组中的特定列:
(strpos( 'meeting',$event['categories'] ) == false )它实际上不起作用。分类的一个例子是:
$event['categories'] = 'meeting;skype'
提前感谢!
发布于 2017-08-07 09:26:00
您需要将参数翻转到strpos()
if (strpos($event['categories'], 'meeting') === false) {
echo $event['categories'] . ' does not contain "meeting"';
}另外,使用严格比较(=== vs ==),因为meeting可能在字符串的开头,然后strpos()将返回0,这将计算为false (在这种情况下这是错误的)。
关于参考,见:
例如,见:
发布于 2017-08-07 09:24:46
发布于 2017-08-07 09:53:36
<?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中。
https://stackoverflow.com/questions/45543317
复制相似问题