首頁 後端開發 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 尊渡假赌尊渡假赌尊渡假赌
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,售價1,299元起。根據官方介紹,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