我想知道在PHP中使用通配符在csv中搜索匹配的最快方法是什么?
e.g。我有一个看起来像这样的简单文本文件(%是通配符):
djfras,Hub3W,%k6q2,88%hA,zzgsqw2,L632 %%,...
函数/ regex / grep应该找到匹配的例如:
diFras或ok6q2或L632s5
因为这会每秒发生几次 - 最强大,时间和CPU节省方法以及如何实施?
提前thanx
汤姆
编辑:对不起我太不精确:)当循环通过几百行的.json文件的行时发生 - .json文件本身每秒都加载
答案 0 :(得分:0)
所以这就是我修补的东西 - 似乎有用 - 但在我眼里看起来很可怕愚蠢?
因为我对这个正则表达式的东西很新 - 任何想法/回应/纠正/改进都非常受欢迎:)
它似乎比没有通配符的简单php内置in_array搜索慢大约10-20倍。现在我测量了这个 - 慢了30-50倍! puuuh
有没有比我的新手编码更好/更清洁/更快的方式???
$haystack = explode(',', str_replace('%', '.', strtoupper('DEISD, B%W951%, CCA828')));
$needle = strtoupper('BAW951L');
foreach ($haystack as $pattern) {
preg_match('/^' . trim($pattern) . '$/', $needle) ? $match = 'true' : $match = 'false';
// just for debug print what it does
print(preg_match('/' . trim($pattern) . '/', $needle) . PHP_EOL);
print($match . PHP_EOL);
}