在逗号分隔的字符串中,在php中,如此:"1,2,3,4,4,4,5"
可以说:
if(!/*4 is in string bla*/){
// add it via the .=
}else{
// do something
}
在数组中你可以做in_array();但这不是一组数组,我不想将其转换为数组....
答案 0 :(得分:1)
在搜索之前尝试将其爆炸成数组:
$str = "1,2,3,4,4,4,5";
$exploded = explode(",", $str);
if(in_array($number, $exploded)){
echo 'In array!';
}
您还可以使用implode:
替换数字并修改数组,然后再“重新组合”$strAgain = implode(",", $exploded);
答案 1 :(得分:1)
你可以使用正则表达式执行此操作:
$re = '/(^|,)' + preg_quote($your_number) + '(,|$)/';
if(preg_match($re, $your_string)) {
// ...
}
但这并不是最清晰的代码;不得不维护代码的其他人(甚至是你自己,几个月后)可能不会喜欢有一些难以理解的东西。让它实际上是一个数组会更清晰,更易于维护:
$values = explode(',', $your_string);
if(in_array((str)$number, $values)) {
// ...
}
如果您需要再次将数组转换为字符串,则可以始终使用implode()
:
$new_string = implode(',', $values);