我很好奇关于性能的问题。
有一个 php 字符串$text
,其中包含几个句子的英文文本。为了简化问题,让我们猜测每个句子都以“.”结尾。总是,并且没有其他符号,例如,?!等文中。
$sentences = array();
$sentences = explode(". ", $text);//we split the text into array of sentences
$words = array();
for ($i=0; $i<count($sentences); $i++){
$words[$i] = explode(" ", $sentences[$i]);//split each sentence into words
}
所以,$words
是一个二维数组。
$words[$i][$j]
是句子#i 中的单词#j。正确的?
问题是:
通过字符串中字母的位置找到单词坐标的最快方法是什么?
所以,如果我们有文字:
I go to school. And you.
$word = positionFinder(0);//I $word == array(0,0) - the zero word in the zero sentence
$word = positionFinder(1);//' ' $word == array(-1," ") or something like that
$word = positionFinder(6);//to $word == array(0,2)
$word = positionFinder(9);//school $word == array(0,3)
$word = positionFinder(10);//school $word == array(0,3)
$word = positionFinder(14);//. $word == array (-1,".") or something like that
$word = positionFinder(17);//And $word == array(1,0) - the zero word in the first sentence
我相信为了获得更好的性能,可以使用额外数组中的一些数据。该positionFinder
函数的使用次数将超过文本中的单词数。所以positionFinder
应该尽可能快地工作。
所以这是一种通过字母来查找单词坐标的方法。有任何想法吗?
谢谢你。