我有一个字符串
8,7,13,14,16
确定该字符串中是否存在给定数字的最简单方法是什么?
$numberA = "13";
$string = "8,7,13,14,16";
if($string magic $numberA){
$result = "Yeah, that number is in there";
} else {
$result = "Sorry.";
}
寻找魔法。
答案 0 :(得分:20)
<?php
in_array('13', explode(',', '8,7,13,14,16'));
?>
...将返回字符串中是否有“13”。
只是详细说明:在这种情况下,explode将字符串转换为数组,将其拆分为每个','。然后,in_array检查字符串'13'是否在某个结果数组中。
答案 1 :(得分:4)
另一种方式,对于laaaaaaaarge字符串来说可能更有效,就是使用正则表达式:
$numberA = "13";
$string = "8,7,13,14,16";
if(preg_match('/(^|,)'.$numberA.'($|,)/', $string)){
$result = "Yeah, that number is in there";
} else {
$result = "Sorry.";
}
答案 2 :(得分:3)
if (strpos(','.$string.',' , ','.$numberA.',') !== FALSE) {
//found
}
警告','字符,他们将帮助处理'13'魔术'1,2,133'案件。
答案 3 :(得分:1)
确保匹配字符串中的完整数字,而不仅仅是其中的一部分。
function numberInList($num, $list) {
return preg_match("/\b$num\b/", $list);
}
$string = "8,7,13,14,16";
numberInList(13, $string); # returns 1
numberInList(8, $string); # returns 1
numberInList(1, $string); # returns 0
numberInList(3, $string); # returns 0
答案 4 :(得分:-1)
如果您只是检查是否存在字符串,那么应该进行简单的字符串搜索。我不会说php,但我认为这是可以做到的。
$mystring = '8,7,13,14,16';
$findme = '13';
if (preg_match('/(?>(^|[^0-9])'.$findme.'([^0-9]|$))/', $mystring)) {
$result = "Yeah, that number is in there";
} else {
$result = "Sorry.";
}