在逗号分隔的字符串中,可以在php中说“存在”

时间:2013-11-28 21:11:47

标签: php string

在逗号分隔的字符串中,在php中,如此:"1,2,3,4,4,4,5"可以说:

if(!/*4 is in string bla*/){
   // add it via the .=
}else{
  // do something
}

在数组中你可以做in_array();但这不是一组数组,我不想将其转换为数组....

2 个答案:

答案 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);