首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >== strtolower(trim())

== strtolower(trim())
EN

Stack Overflow用户
提问于 2014-02-11 23:26:21
回答 1查看 2.3K关注 0票数 0

我正在看一些在CSV中处理大约7k项的代码。CSV导入程序检查重复项,该过程的一部分是对每一行进行检查,检查已处理的所有其他行的副本。这意味着它会做一些类似..。

代码语言:javascript
复制
foreach ($users as $possibleDuplicate) {
    if (strtolower(trim($user->first_name)) == strtolower(trim($possibleDuplicate->first_name)) && strtolower(trim($user->last_name)) == strtolower(trim($possibleDuplicate->last_name))) {

    }
}

忽略这个脚本上糟糕的执行思想(我没有写)。strtolower(trim())似乎在我的导入上取得了相当好的性能。我一直在寻找一个更有效率和更快的替代品。我还没有做任何性能测试,但计划到明天。我希望这里的人能够了解一些他们已经掌握的方法方面的信息,比如preg_match()

更新:我不想提高这个循环的性能,我认识到在这个过程之外移动方法会显着地提高性能。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-11 23:40:53

您应该在循环之外移动不变化的部分:

也许把last_name测试放在名字测试之前(如果每个人的名字都是"John",那么就会更快地失败,但是每个人都可以使用"McGuire“作为姓)。

代码语言:javascript
复制
$userFirstNameLower = strtolower(trim($user->first_name));
$userLastNameLower = strtolower(trim($user->last_name));
foreach ($users as $possibleDuplicate) {
    if ( $userLastNameLower == strtolower(trim($possibleDuplicate->last_name)) && $userFirstNameLower == strtolower(trim($possibleDuplicate->first_name))) {

    }
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21715418

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档