编辑:不寻找任何人为我编写代码,只是寻找建议以哪种方式最好地实现我正在尝试做的事情。
我可以想到几种方法,但我只是想知道是否有更优雅的方式。
例如,我想知道“abc”是否在“cat,dog,abc,xyz”中
这些是我以前做过的......
in_array($key, explode(',', $value));
(strpos($value, ','.$key) !=== FALSE) || (strpos($value, $key.',') !=== FALSE);
preg_match('/(\,'.$key.'|'.$key.'\,)/', $value) !== 0 // Untested, but.. just for the general idea.
任何有关更好方法的智慧言论,Stack Overflow?
答案 0 :(得分:2)
正如杰森所说,你的头衔似乎有点不对劲。但是......这是你给出的例子(仅限5.3+):
in_array($key, str_getcsv($value));
检查行$value
中的任何列的值是否恰好是$key
的值
答案 1 :(得分:2)
第一种方法可能是最可靠/最准确,最容易阅读/理解的方法。但是,您应该使用str_getcsv()而不是explode()
,因为逗号可以位于以逗号分隔的数据中。它崩溃的例子:
$key = 'uh, oh';
$value = 'foo,"uh, oh",bar';
另外两种方法容易出错,并且有边缘情况会导致误报。他们非常不可靠。