猿问

在以逗号 PHP 分隔的字符串中搜索确切的数字

我有两个字符串:一个带有数字:

$a = "348, 23, 16";

另一个数字可以是任何其他数字

$b = "348";

我如何搜索是否$a包含 exactly $b,而不是其他任何东西(即348应该返回 true,34应该返回 false)?


ABOUTYOU
浏览 171回答 5
5回答

白衣非少年

您可以explode使用逗号 (,) 来表示字符串,然后检查in_array某个项目是否存在。$a = "348, 23, 16";$b = "348";$c = "34";$arr = array_map(function($v) {  return trim($v);}, explode(',', $a));function isContains($item, $array){   return in_array($item, $array);}var_dump(isContains($b, $arr)); // Truevar_dump(isContains($c, $arr)); // False

慕田峪7331174

您需要将 CSV 解析为 CSV,然后您可以使用它in_array来检查值。$a = "348, 23, 16";$ints = str_getcsv($a);$b = "349";if(in_array($b, $ints)) {    echo 'its there';} else {    echo 'its not there';}和一个工作示例:$a = "348, 23, 16";$ints = str_getcsv($a);$b = "348";if(in_array($b, $ints)) {    echo 'its there';} else {    echo 'its not there';}将strpos只检查整数的一部分是否在字符串中,例如3489将被找到。

翻翻过去那场雪

您还可以使用您的数字和正则表达式单词边界执行简单的 preg_match()。 preg_match('/\b348\b/','348, 12, 47');演示: https ://3v4l.org/HPb2q

qq_花开花谢_0

像这样使用 php explode()方法和in_array()方法:$numberexists = in_array($b, explode(', ', $a));这会将字符串转换为一个由 分隔(定界)的,数组,然后使用 in_array() 在该数组中搜索相应的值;

慕森王

尝试使用 explode() 和 in_array()。$a = "348, 23, 16";$b = "348";$array = explode(", ", $a);if(in_array($b, $array)) {    return true;}else {    return false;}
随时随地看视频慕课网APP
我要回答