有没有一种简单的方法来检查一个值是否在字符串中?
$string = ' 123,456,789,abc789,def'
if ($string has '789') {
// code
}
我只想要一个完全匹配(所以只有 789,而不是 abc789)
目前我能想到的唯一方法是使用逗号分解字符串以将其转换为数组,然后检查每个值是否匹配。有没有更好/更有效的方法?
有没有一种简单的方法来检查一个值是否在字符串中?
$string = ' 123,456,789,abc789,def'
if ($string has '789') {
// code
}
我只想要一个完全匹配(所以只有 789,而不是 abc789)
目前我能想到的唯一方法是使用逗号分解字符串以将其转换为数组,然后检查每个值是否匹配。有没有更好/更有效的方法?
例如,如果您有,则使用 strpos 将不起作用,请' 123,456,789,12789,abc,def'
改用preg_match:
$string = ' 123,456,789,abc789,def';
$what_to_find = '789';
if (preg_match('/\b' . $what_to_find . '\b/', $string)) {
// code
}
你可以爆炸它并检查它是否在数组中
function stringContains($string, $needle)
{
$arr = explode(',',$string);
if(in_array($needle,$arr))
return true;
return false;
}
除了 stpos 建议之外,如果您在字符串 123,456 中查找 12 ,这将不会返回 true,其中 strpos 将返回一个位置
您可以使用strpos
用于查找一个字符串在另一个字符串中出现的函数
$string = ' 123,456,789,abc,def';
if (strpos($string,'789') !== false) {
echo 'true';
}
见手册
@Bryan 代码的较短版本:
function stringContains($string, $needle) {
return in_array($needle, explode(',', $string));
}
使用该strpos()
功能。
$string = ' 123,456,789,abc,def'
if (strpos($string,'789') !== FALSE) {
// code
}