为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
ABOUTYOU 2022-12-23 15:45:43
我有两个字符串:一个带有数字:$a = "348, 23, 16";另一个数字可以是任何其他数字$b = "348";我如何搜索是否$a包含 exactly $b,而不是其他任何东西(即348应该返回 true,34应该返回 false)?
查看完整描述

5 回答

?
白衣非少年

TA贡献1155条经验 获得超0个赞

您可以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)); // True

var_dump(isContains($c, $arr)); // False


查看完整回答
反对 回复 2022-12-23
?
慕田峪7331174

TA贡献1828条经验 获得超13个赞

您需要将 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将被找到。


查看完整回答
反对 回复 2022-12-23
?
翻翻过去那场雪

TA贡献2065条经验 获得超13个赞

您还可以使用您的数字和正则表达式单词边界执行简单的 preg_match()。

 preg_match('/\b348\b/','348, 12, 47');

演示: https ://3v4l.org/HPb2q


查看完整回答
反对 回复 2022-12-23
?
qq_花开花谢_0

TA贡献1835条经验 获得超7个赞

像这样使用 php explode()方法和in_array()方法:

$numberexists = in_array($b, explode(', ', $a));

这会将字符串转换为一个由 分隔(定界)的,数组,然后使用 in_array() 在该数组中搜索相应的值;


查看完整回答
反对 回复 2022-12-23
?
慕森王

TA贡献1777条经验 获得超3个赞

尝试使用 explode() 和 in_array()。


$a = "348, 23, 16";

$b = "348";


$array = explode(", ", $a);

if(in_array($b, $array)) 

{

    return true;

}

else {

    return false;

}


查看完整回答
反对 回复 2022-12-23
  • 5 回答
  • 0 关注
  • 170 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信