PHP / Shell - 使用通配符搜索CSV的最快方法

时间:2017-09-15 08:12:57

标签: php arrays regex grep wildcard

我想知道在PHP中使用通配符在csv中搜索匹配的最快方法是什么?

e.g。我有一个看起来像这样的简单文本文件(%是通配符):

djfras,Hub3W,%k6q2,88%hA,zzgsqw2,L632 %%,...

函数/ regex / grep应该找到匹配的例如:

diFras或ok6q2或L632s5

因为这会每秒发生几次 - 最强大,时间和CPU节省方法以及如何实施?

提前

thanx

汤姆

编辑:对不起我太不精确:)当循环通过几百行的.json文件的行时发生 - .json文件本身每秒都加载

1 个答案:

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