文字列が膨大でない限り、配列を作成して検索します。
$string = "21,22,23,26,";
$arr = explode(",", $string);
// array_search() returns its position in the array
echo array_search("2", $arr);
// null output, 2 wasn't found
実際にin_array()
は、おそらくより高速です:
// in_array() returns a boolean indicating whether it is found or not
var_dump(in_array("2", $arr));
// bool(false), 2 wasn't found
var_dump(in_array("22", $arr));
// bool(true), 22 was found
これは、文字列がカンマ区切りの値のリストである限り機能します。文字列が非常に長い場合、配列を作成するとメモリが無駄になる可能性があります。代わりに文字列操作ソリューションを使用してください。
補遺
あなたは指定しませんでしたが、万が一これらの文字列がデータベーステーブルからのものである場合、適切なアクションは、区切り記号として保存するのではなく、IDごとに1行で別のテーブルに適切に正規化することであると付け加えます.ストリング。