How do I find exact 2, in a string using strpos? Is it possible using strpos? The example below returns “Found” even though the match is NOT exact to what I need. I understand 2, is matching with 22,. It should return “Not Found”. I am matching ID’s in this example.
$string = "21,22,23,26,";
$find = "2,";
$pos = strpos($string, $find);
if ($pos !== false) {
echo "Found";
} else {
echo "Not Found";
}
Unless the string is enormous, make an array and search it:
Actually,
in_array()is probably faster:This will work as long as your string is a comma-delimited list of values. If the string is really long, making an array may be wasteful of memory. Use a string manipulation solution instead.
Addendum
You didn’t specify, but if by some chance these strings came from a database table, I would just add that the appropriate course of action would be to properly normalize it into another table with one row per id rather than store them as a delimited string.