首页 后端开发 php教程 帮小弟我把这函数精简下啊

帮小弟我把这函数精简下啊

Jun 13, 2016 pm 01:26 PM
ar keyword quot split varchar

帮我把这函数精简下啊,,

PHP code
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--><?php $varchar='德国和丹麦都在第一场比赛1-0获胜,在次轮比赛中,德国2-1击败荷兰,两场小组赛战罢,德国队虽然拿到了6分,但依然未能保证出线,最后一场如果输给丹麦仍然有出局可能。丹麦上一场在0-2落后的情况下连追两球,但最后还是2-3输给葡萄牙,将小组次席拱手让给葡萄牙。

丹麦想要出线必须力争击败德国,好在他们也不缺乏击败德国的感觉。在两队最近3场交手中,丹麦令人吃惊地2胜1平占据上风,最近一次交手是在2010年8月,丹麦在落后两球情况下扳平比分。两队上一次在欧洲杯交手则是1992年欧洲杯决赛,当时正是丹麦童话的巅峰,北欧人2-0击败德国夺冠。

在德国队前两场比赛中,戈麦斯成为最大的亮点。超级马里奥连续两场比赛包揽了德国3粒进球,恐怖的是他进3球居然只花了6脚射门。戈麦斯目前以3球排名射手榜首位,自从1976年欧洲杯穆勒单届射进4球以来,德国队此后36年还没有任何球员欧洲杯单届进球超过3个。左边锋波多尔斯基在此前两场小组赛均打满全场,国家队出场次数达到99场,本场有望实现百场。

双方都没有对首发阵容进行大的调整,德国队只是因为博阿滕停赛而派上了本德,丹麦也只换上鲍尔森,队内元老罗梅达尔因伤缺席。本场德国前锋波多尔斯基迎来国家队第100场比赛,小将本德则是首次在国家队首发。

第2分钟,赫迪拉禁区前沿左侧传中,中路无人拿到皮球,后点穆勒胸部停球后左脚抽射稍稍高出。第5分钟,丹麦左侧角球,本特纳远点头球攻门被诺伊尔拿到。1分钟后,德国迅速反击,厄齐尔左侧直塞,波多尔斯基传中,克亚尔解围不力,穆勒门前3米处射门被安德森神奇化解。第12分钟,戈麦斯禁区外围左脚远射高出。';


$keyword="本德|鲍尔森";
//$keyword="射门|本德|鲍尔森";
//$keyword="丹麦|角球|头球|神奇";


function pipeidu($keyword,$varchar,$length){
    $keyexp=explode('|',$keyword);
    $keyNum=count($keyexp);
$ar = preg_split('/('.$keyword.')/', $varchar, -1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_OFFSET_CAPTURE);
for($j=0; $j<count($ar)-1; $j++) {
  $t = $ar[$j][1];
  $r[$t] = 0;
  for($i=$j; $i<count($ar); $i++) {
    if($ar[$i][0] == '本德'||$ar[$i][0] == '鲍尔森') {  //[color=#FF0000]求此处适应一个或多个词组,越精简越好[/color]。
      if($ar[$i][1]+strlen($ar[$i][0]) - $t < $length) $r[$t]++;
      else $r[$t=$ar[$i][1]] = 0;
    }
  }
}
if(isset($r)&&count($r)>0){
arsort($r);
$r=array_keys($r);
return $r=substr($varchar,$r[0],$length);
}
else{return $r=substr($varchar,0,$length);}
}
?>
登录后复制


------解决方案--------------------
呵呵, 原来你就喜欢用这些半残废封装.
------解决方案--------------------
to qq120848369
lz 的代码不是如你所说 http://topic.csdn.net/u/20120619/02/c024bcf0-9c61-4e61-b58c-2844f0af2310.html
1,扫一遍找出所有的关键字。
2,再扫一遍,计算出每个end_index位置之前的关键字总数,同时计算180个字符之前的beg_index位置的关键字个数差值。
3,对关键字差值最大的180长度的段,strrstr,strstr分别头尾找到一个关键字,把多余的部分切掉,这样可以让字符再少一点。

的思路做的吗?
1、用 preg_split 完成找出所有的关键字
2、从每一个关键字出现的位置开始统计指定长度内关键字出现的次数(双重循环)

当然 lz 的代码也是用可优化的地方的,比如
外层循环中的
$t = $ar[$j][1];
 $r[$t] = 0;
与内层循环中的
 $r[$t=$ar[$i][1]] = 0;
存在重复计算的问题(因为外层的 $j 已经遍历了全部关键字节点)
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
威尔R.E.P.O.有交叉游戏吗?
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

XREAL 创始人徐驰:苹果让大家看到空间计算的未来,我们努力让大家看到空间计算的现在 XREAL 创始人徐驰:苹果让大家看到空间计算的未来,我们努力让大家看到空间计算的现在 Jun 02, 2024 pm 07:55 PM

XREAL在空间计算新品发布会上推出了一款全新产品——XREALBeamPro,售价1299元起。据官方介绍,XREALBeamPro是一款将2D应用逐渐释放到3D空间的计算终端,配备XREALAR眼镜,将构成“消费级AR空间计算完全体”,并将用户从手机侧的迁移成本降至最低。在设计上,XREALBeamPro看起来像智能手机,但并非手机产品,而是一款配备触控显示屏的空间计算终端。官方对其的定位为“像Phone一样的AR空间计算终端”。在发布会上,XREAL创始人兼CEO徐驰对BeamPro的能力

如何使用PHP构建AR/VR应用 如何使用PHP构建AR/VR应用 Jun 11, 2023 pm 07:22 PM

随着AR(增强现实)和VR(虚拟现实)的发展,这两项技术已经成为了创新和体验的重要组成部分。随着PHP作为网络编程语言的流行,使得PHP成为了开发AR/VR应用的一种可行性选择。本文将介绍如何使用PHP构建AR/VR应用。1、了解AR和VR技术在开始创建AR/VR应用程序之前,我们需要了解不同的技术和库。AR技术允许虚拟对象或信息与现实世界的环境进行交互。V

微软探索使用微透镜阵列进行大范围主射线角操纵的AR/VR专利 微软探索使用微透镜阵列进行大范围主射线角操纵的AR/VR专利 Sep 30, 2023 pm 09:29 PM

(映维网Nweon2023年09月26日)微软认为,MicroLED具有体积小、重量轻、亮度高、封装密度高的特点,可能特别适合用于需要高分辨率、小尺寸和轻重量的头戴式显示器。在名为”Microlensesprovidingwiderangechiefrayanglemanipulationforapaneldisplay“的专利申请中,微软介绍了一种为面板显示提供大范围主射线角操纵的微透镜,以及配置所述微透镜阵列的显示系统。其中,阵列中的每个微透镜对应于面板显示器的各自像素。微透镜的配置根据它们

莫界科技首次登场CES,领先引领AR创新潮流! 莫界科技首次登场CES,领先引领AR创新潮流! Jan 14, 2024 pm 09:06 PM

1月9日-12日,超过4000家展商聚集在消费电子“春晚”CES上。作为消费级AR领域的创新企业,莫界科技首次参展CES,全面展示了中国AR企业在核心器件、整机方案和定制化服务方面的强大实力。在莫界展台上,展示的基于双目树脂衍射光波导+MicroLED的AR眼镜,引起了众多观众的兴趣,他们纷纷试戴并体验了其功能。这款AR眼镜具备了许多实用的特点。首先,佩戴者可以透过眼镜镜片实时查看文字内容,这使得阅读更加方便。其次,眼镜内置了麦克风,可以收集语音信息,并通过即时翻译功能将其转化为指定语言的文本,

NTT QONOQ Devices 推出适用于智能手机的 Mirza 无线 XR 眼镜 NTT QONOQ Devices 推出适用于智能手机的 Mirza 无线 XR 眼镜 Sep 09, 2024 pm 06:30 PM

NTT QONOQ Devices 推出了适用于智能手机的 Mirza 无线 XR 眼镜,使用户无需再纠结电线。该眼镜可以在现实空间中显示虚拟 AR 内容,例如 Pokemon Go 或在大型虚拟显示器上显示手机内容

科视:技术 + 创新双驱动,带来无限可能 科视:技术 + 创新双驱动,带来无限可能 Apr 23, 2024 am 08:10 AM

作为一家以创新为核心驱动的技术公司,科视在智能视听技术方面能够提供全面的解决方案、丰富的行业经验和完善的服务网络等。在今年的InfoCommChina上,科视带来了RGB纯激光投影机、1DLP激光投影机、LED视频墙以及内容管理和处理解决方案等。在活动现场,一位专为天文展示的大型定制外球面球幕成为了现场的焦点,科视将其命名为《球体深空》,ChristieM4K25RGB纯激光投影机为其赋予了"绿活的生命力"。中国区商用事业部高级技术服务经理盛晓强先生表示:实现外球面球幕投影不难,但能够做小,且色

苹果Vision Pro很强么 国外媒体人深度体验两天后犹豫了 苹果Vision Pro很强么 国外媒体人深度体验两天后犹豫了 Feb 02, 2024 am 09:21 AM

这可能是苹果2023年所发布的最具创新性的产品,也可能是苹果开启下一个时代的开篇之作。苹果VisionPro即将于当地时间2月2日正式开售,这款在去年发布时引起了轰动的产品,究竟有着怎样的使用体验?近日,国外科技主编兰斯·乌拉诺夫(LanceUlanoff)发布了一篇深度体验日记,或许能够让远在大洋彼岸的我们,更加直观、真实的了解这款产品。CNMO也编译了兰斯的相关日记。接下来,文中的“我”,指的便是兰斯本人。文章经过了相关删减,但是不会影响阅读。无论你听说过或读到过

Java String中的split方法如何使用 Java String中的split方法如何使用 May 02, 2023 am 09:37 AM

String中split方法使用String的split()方法用于按传入的字符或字符串对String进行拆分,返回拆分之后的数组。1、一般用法用一般的字符,例如@或,等符号做分隔符时:Stringaddress="上海@上海市@闵行区@吴中路";String[]splitAddr=address.split("@");System.out.println(splitAddr[0]+splitAddr[1]+splitAddr[2]+splitAddr[3

See all articles