我有下面的代码,我试图达到这样的效果
-Remove字符串末尾的"-“和数字。
-Then检查该值是否匹配。
这是我的PHP代码
$usernames= array("microsoft-2","google-1","google");
$value='google';
$input = preg_quote($value, '~');
$result = preg_grep('~' . $value . '~', $usernames);
echo '<pre>';
print_r($result);
//Array
(
[1] => google-1
[2] => google
)上面的结果很好,但问题是如果我将值设置为"goog",则返回相同的结果,而我希望它返回一个空的erray。
用户名来自数据库,可以是一个大的数字。
简而言之,它应该在末尾返回一个移除破折号和数字,然后它应该检查这些值是否相同。如果是的话,那就把结果推进去否则就不行了。
任何帮助都将不胜感激!非常感谢
发布于 2019-03-07 19:56:58
添加单词中断\b
$usernames= array("microsoft-2","google-1","google");
$value='goog';
$input = preg_quote($value, '~');
$result = preg_grep('~' . $value . '\b~', $usernames);
echo '<pre>';
print_r($result);输出
array()沙盒
您甚至可以在每个侧$result = preg_grep('~\b' . $value . '\b~', $usernames);中添加一个--在本例中,goog --您只需要正确的一个。
https://stackoverflow.com/questions/55051708
复制相似问题