ホームページ バックエンド開発 PHPチュートリアル この関数を簡素化するのを手伝ってください。

この関数を簡素化するのを手伝ってください。

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

この関数を簡略化してください。

PHP コード
<!--

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);}
}
?>
ログイン後にコピー


-----解決策--------- ----- -----
ははは、あなたはこれらの半障害者用パッケージを使用するのが好きなようですね。
------解決策------------------
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 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

XREAL 創設者 Xu Chi 氏: Apple は誰もが空間コンピューティングの未来を見れるようにしており、私たちは誰もが空間コンピューティングの現在を見てもらえるよう懸命に取り組んでいます。 XREAL 創設者 Xu Chi 氏: Apple は誰もが空間コンピューティングの未来を見れるようにしており、私たちは誰もが空間コンピューティングの現在を見てもらえるよう懸命に取り組んでいます。 Jun 02, 2024 pm 07:55 PM

XREAL は空間コンピューティング新製品発表カンファレンスで新製品 XREALBeamPro を発表しました。価格は 1,299 元からです。公式の紹介によると、XREALBeamProは2Dアプリケーションを3D空間に段階的にリリースするコンピューティング端末であり、XREALARグラスを備えており、「完全なコンシューマーグレードのAR空間コンピューティングシステム」を形成し、携帯電話からのユーザーの移行コストを最小限に抑えます。側。 XREALBeamProはデザイン的にはスマートフォンに似ていますが、携帯電話製品ではなく、タッチディスプレイを搭載した空間コンピューティング端末です。正式には「PhoneのようなAR空間コンピューティング端末」と位置付けられている。記者会見で、XREAL 創設者兼 CEO の Xu Chi 氏は、BeamPro の機能に対する熱意を表明しました。

PHP を使用して AR/VR アプリケーションを構築する方法 PHP を使用して AR/VR アプリケーションを構築する方法 Jun 11, 2023 pm 07:22 PM

AR (拡張現実) と VR (仮想現実) の発展により、これら 2 つのテクノロジーはイノベーションとエクスペリエンスの重要な部分になりました。ネットワーク プログラミング言語としての PHP の人気により、PHP は AR/VR アプリケーションの開発に適した選択肢になりました。この記事では、PHP を使用して AR/VR アプリケーションを構築する方法を紹介します。 1. AR および VR テクノロジーを理解する AR/VR アプリケーションの作成を開始する前に、さまざまなテクノロジーとライブラリを理解する必要があります。 AR テクノロジーにより、仮想オブジェクトや情報が現実世界の環境と対話できるようになります。 V

Microsoft、広範囲の主光線角度操作にマイクロレンズアレイを使用した AR/VR 特許を検討 Microsoft、広範囲の主光線角度操作にマイクロレンズアレイを使用した AR/VR 特許を検討 Sep 30, 2023 pm 09:29 PM

(Nweon 2023 年 9 月 26 日) Microsoft は、MicroLED には小型、軽量、高輝度、高実装密度という特性があり、高解像度、小型、軽量を必要とするヘッドマウント デバイスに特に適している可能性があると考えています。 .モニターです。マイクロソフトは、「パネルディスプレイに広範囲の主光線角度操作を提供するマイクロレンズ」というタイトルの特許出願で、パネルディスプレイに広範囲の主光線角度操作を提供するマイクロレンズと、マイクロレンズアレイで構成されたディスプレイシステムを紹介した。ここで、アレイ内の各マイクロレンズは、パネルディスプレイのそれぞれのピクセルに対応する。マイクロレンズは、次のように構成されています。

Mojie Technology が CES で初めてデビューし、AR イノベーションのトレンドをリードします。 Mojie Technology が CES で初めてデビューし、AR イノベーションのトレンドをリードします。 Jan 14, 2024 pm 09:06 PM

1月9日から12日まで、CES、家電製品の「Spring Festival Gala」には4,000社以上の出展者が集まった。消費者向け AR 分野の革新的な企業として、Mojie Technology は CES に初めて参加し、コアデバイス、完全なマシンソリューション、カスタマイズされたサービスにおける中国の AR 企業の強力な強みを十分に実証しました。 Mojieブースでは、両眼用樹脂回折光導波路+MicroLEDを用いたARグラスを展示し、多くの来場者が興味を持ち、試着や機能体験を行っていました。この AR メガネには多くの実用的な機能が備わっています。まず、着用者はメガネのレンズを通してテキストの内容をリアルタイムで見ることができるため、読書がより便利になります。次に、メガネにはマイクが内蔵されており、音声情報を収集し、即時翻訳機能を通じて指定した言語のテキストに変換できます。

NTT QONOQデバイス、スマートフォン用MirzaワイヤレスXRグラスを発表 NTT QONOQデバイス、スマートフォン用MirzaワイヤレスXRグラスを発表 Sep 09, 2024 pm 06:30 PM

NTT QONOQ Devices は、ユーザーがコードを取り回す必要から解放される、スマートフォン用の Mirza ワイヤレス XR メガネを発表しました。このメガネは、ポケモン Go などの現実世界の空間に仮想 AR コンテンツを表示したり、大きな仮想ディスプレイに携帯電話のコンテンツを表示したりできます。

クリスティ: テクノロジー + イノベーションの二重推進が無限の可能性をもたらす クリスティ: テクノロジー + イノベーションの二重推進が無限の可能性をもたらす Apr 23, 2024 am 08:10 AM

イノベーションを原動力とするテクノロジー企業として、Christie はインテリジェント オーディオビジュアル テクノロジーにおける包括的なソリューション、豊富な業界経験、完全なサービス ネットワークを提供できます。今年の InfoCommChina で、Christie は RGB ピュア レーザー プロジェクター、1DLP レーザー プロジェクター、LED ビデオ ウォール、コンテンツ管理および処理ソリューションを持ち込みました。イベント会場では、天体表示用に特別に設計された大規模なカスタムメイドの外球ドームがシーンの焦点となり、クリスティ M4K25RGB ピュア レーザー プロジェクターがそれに「グリーン バイタリティ」を与えました。中国商業事業部の上級技術サービスマネージャーであるSheng Xiaoqiang氏は、次のように述べています。

Apple Vision Proは強いのか?海外メディア関係者、2日間の徹底体験を経て躊躇 Apple Vision Proは強いのか?海外メディア関係者、2日間の徹底体験を経て躊躇 Feb 02, 2024 am 09:21 AM

これは、2023 年に Apple がリリースする最も革新的な製品になる可能性があり、Apple の次の時代の始まりとなる可能性もあります。 Apple Vision Proは現地時間2月2日に正式発売されますが、昨年の発売時にセンセーションを巻き起こしたこの製品の使用感はどのようなものなのでしょうか?最近、海外のテクノロジー編集者ランス・ウラノフ氏が詳細な体験日記を出版しました。これにより、海の向こうにいる私たちがこの製品をより直観的かつ真に理解できるようになるかもしれません。 CNMOはランスの関連日記もまとめた。次に、記事中の「私」とはランス自身のことです。記事は削除されましたが、読むのに影響はありません。聞いたこと、読んだことすべて

Java String での Split メソッドの使用方法 Java String での Split メソッドの使用方法 May 02, 2023 am 09:37 AM

String の Split メソッドは、String の Split() メソッドを使用して、受信する文字または文字列に従って String を分割し、分割された配列を返します。 1. 一般的な使用法 @ や区切り文字などの一般的な文字を使用する場合: Stringaddress="Shanghai@Shanghai City@Minhang District@Wuzhong Road";String[]splitAddr=address.split("@");System .out。 println(splitAddr[0]+splitAddr[1]+splitAddr[2]+splitAddr[3]

See all articles