免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2020 | 回复: 6
打印 上一主题 下一主题

[字符串 搜索] 这两种查找字符串的方法,哪个更优化? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-07-28 18:45 |只看该作者 |倒序浏览
有一组数据如:
"0571","0581","9571","9581","2571","2581","3571","3581"
,"4571","4581","5571","5578","6289","7571","7581","8571","8581"
在这组数据中查找某一变量 $str 是否包含在这组字符串中,下面两种算法,哪个更高效呢且占资源又比较少呢?

<?php
//第一种
$str = "8581";
$str_array = array("0571","0581","9571","9581","2571","2581","3571","3581","4571"
                    ,"4581","5571","5578","6289","7571","7581","8571","8581";
for($i=0; $i<count($str_array); $i++){
    if($str==$str_array[$i]){
        echo "查到";
        break;
    }
}

//第二种
$str = "8581";
if($str=="0571" || $str=="0581" || $str=="9571" || $str=="9581" || $str=="2571" || $str=="2581"
   || $str=="3571" || $str=="3581" || $str=="4571" || $str=="4581" || $str=="5571" || $str=="5578"
   || $str=="6289" || $str=="7571" || $str=="7581" || $str=="8571" || $str=="8581"
  )
{
    echo "查到";
}


?>;

论坛徽章:
1
技术图书徽章
日期:2013-12-05 23:25:45
2 [报告]
发表于 2005-07-28 21:45 |只看该作者

[字符串 搜索] 这两种查找字符串的方法,哪个更优化?

個人認為,后者。

不過,不知道,妳這么作的意義是什么?

论坛徽章:
0
3 [报告]
发表于 2005-07-28 22:14 |只看该作者

[字符串 搜索] 这两种查找字符串的方法,哪个更优化?

个人感觉.你做的是无用功./如果想实现你的目的
可以使用 strpos()

具体参考URL http://www.php.net/manual/zh/function.strpos.php

论坛徽章:
1
技术图书徽章
日期:2013-12-05 23:25:45
4 [报告]
发表于 2005-07-28 22:21 |只看该作者

[字符串 搜索] 这两种查找字符串的方法,哪个更优化?

用那个也没有直接的快,个人观点。


要用其他的函数,那还使用preg的比较好

论坛徽章:
0
5 [报告]
发表于 2005-07-28 22:26 |只看该作者

[字符串 搜索] 这两种查找字符串的方法,哪个更优化?

原帖由 "HonestQiao" 发表:
用那个也没有直接的快,个人观点。


要用其他的函数,那还使用preg的比较好


没有测试过.只是册子上写到

提示: 如果只想查看一个字符串是否包含在另一个字符串中,不要用 preg_match()。可以用 strpos() 或 strstr() 替代,要快得多。


具体参考 http://www.php.net/manual/zh/function.preg-match.php

论坛徽章:
0
6 [报告]
发表于 2005-07-29 11:18 |只看该作者

[字符串 搜索] 这两种查找字符串的方法,哪个更优化?

为什么不用in_array函数呢

论坛徽章:
0
7 [报告]
发表于 2005-07-30 01:13 |只看该作者

[字符串 搜索] 这两种查找字符串的方法,哪个更优化?

正则表达式功能强大,但在执行效率上表现不佳,
对于上面两方法,我还没有搞清楚php的具体实现步骤,也就是说,cpu是如何运算的

现在我要比较的数据量一下子升到了10000个,就不能用这样的方法来做了,不然会吃掉好多内存了,我干脆放到数据库中来实现了,但上面的两种方法到底哪个好些呢?我还是有些不解,有位兄弟提出用in_array()也是个不错的方法,毕竟php对这样的查找已经做过优化了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP