$arr = array('superman','gossipgirl',...);
$text = 'arbitary stuff here...';
Ne yapmak istiyorum PHP verimli bir şekilde nasıl, $arr $text içinde her kelimenin ilk / son occurencing endeksi bulmak?
I olan array_keys http://uk3.php.net/manual/en/function.array-keys.php istiyorum ne düşündüklerini
<?php
$array = array("blue", "red", "green", "blue", "blue");
$keys = array_keys($array, "blue");
print_r($keys);
?>
Yukarıdaki örneğin çıktısı:
Array
(
[0] => 0
[1] => 3
[2] => 4
)
echo 'First '.$keys[0] will echo the first.
Sen tek yönlü elemanları saymak olacaktır son çeşitli şekillerde, almak ve sonra sonuncusu örneğin echo
$count = count($keys);
echo ' Last '.$keys[$count -1]; # -1 as count will return the number of entries.
Yukarıdaki örneğin çıktısı:
First 0 Last 4
strpos-tabanlı yöntemler size words pozisyonları hakkında bir şey anlatacağım, onlar substrings metin bulmak için sadece mümkün. Düzenli ifadeler deneyin:
preg_match_all('~\b(?:' . implode('|', $words) . ')\b~', $text, $m, PREG_OFFSET_CAPTURE);
$map = array();
foreach($m[0] as $e) $map[$e[0]][] = $e[1];
bu gibi bir kelime-pozisyon haritası oluşturur
'word1' => array(pos1, pos2, ...),
'word2' => array(pos1, pos2, ...),
Eğer bu var sonra, kolayca kullanarak ilk / son konumlarını bulabilirsiniz
$firstPosOfEachWord = array_map('min', $map);