» »

[PHP] primerjava besed v stavkih

[PHP] primerjava besed v stavkih

R33D3M33R ::

Torej imam dva stavka. Prvi se glasi recimo "Sapramiška je ukradla zob in ga skrila pod klop.", drugi se glasi "je ukradla zob". Drugi je torej del prvega stavka. Sedaj bi pa rad ta stavka primerjal in sicer besede v njih. To pa bi moralo vrniti naslednji rezultat:

011100000

In sicer tam ko bi se besede ujemale bi bile enice, tam ko pa ne pa bi bile ničle. Upamo da sem zapisal dovolj razumljivo.

Sem poskušal že s tisoči načini: recimo explode in preg_match pa ni uspelo vedno. Ima kdo kako idejo kako to rešiti?

Hvala za vsakršen nasvet!
Moja domača stran: http://andrej.mernik.eu
Na spletu že od junija 2002 ;)
:(){ :|:& };:

rokpok ::

Čisto možno, da sem preveč zakompliciral...

<?php

	$sentence1 = 'Jaz sem mala roza, roza mamina.';
	$sentence2 = 'sem mala';
	$array1 = explode (' ', $sentence1);
	$array2 = explode (' ', $sentence2);
	$result = '';
	for ($i = 0, $position = 0; $i < sizeof ($array1); $i++) {
		if ($position != sizeof ($array2) AND $array1 [$i] == $array2 [$position]) {
			$result .= 1;
			$position++;
		} else {
			$result .= 0;
		}
	}
	echo $result;

?>
Rad bi bil pingvin.

R33D3M33R ::

Hej, hvala, odlična koda, ravno nekaj takega sem imel v mislih pa nisem znal izpeljati. Žal pa mi ne deluje v vseh primerih, recimo, če je tista koda na koncu besede se zalomi.

Sem sam spisal neko kodo, ampak deluje samo, če so besede nagužvane na kupu. :). Za vsak slučaj sem ven pometal tudi ločila.

$arr_reg1 = (str_replace (array(",",".","!","?"),"",$_REQUEST[$vnos1]));
$arr_reg2 = (str_replace (array(",",".","!","?"),"",$_REQUEST[$vnos2]));

$enic = '';
for ($a=0;$a<str_word_count($arr_reg2);$a++) {
$enic .= '1';
}
$repl1 = str_replace ($arr_reg2,$enic,$arr_reg1);
$result = str_replace (explode(" ",$arr_reg1),'0',$repl1);
echo $result;


Trenutno deluje, če pa ima kdo boljši predlog, bi vseeno prosil zanj.

LP
Moja domača stran: http://andrej.mernik.eu
Na spletu že od junija 2002 ;)
:(){ :|:& };:

rokpok ::

Žal pa mi ne deluje v vseh primerih, recimo, če je tista koda na koncu besede se zalomi.

Ne razumem...
Rad bi bil pingvin.

R33D3M33R ::

Recimo: "Brati sem se naučil v starosti sedmih let" in "v starosti sedmih let" mi recimo izvrže 00000001, moralo pa bi 00001111.
Moja domača stran: http://andrej.mernik.eu
Na spletu že od junija 2002 ;)
:(){ :|:& };:

OwcA ::

1) Na nivoju nizov poiščeš prvi B v A.
2) Če ga, si zapomniš kje se začne B. Recimo temu mestu p, drugače prešteješ presledke v A, izpišeš* in končaš
3)** Prešteješ število prestledkov od začetka A do p, število presledkov v B.
4) izpišeš
5) Skrajšaš A v A od konca B dalje.
6) vrneš se v 1)

* "izpišeš" ni treba jemati čisto dobesedno, bolj v duhu, dodaš k rezultatu.

** tu bodo morda potrebni kakšni +/- 1 popravki, odvisno od implementacije funkcij za delo z nizi.
Otroška radovednost - gonilo napredka.

Zgodovina sprememb…

  • spremenilo: OwcA ()

rokpok ::

Meni tisti tvoj primer vrne pravilni rezultat. Edini problem mogoče vidim v tem, če je stavek1 krajši od stavka2. Sicer pa lahko to preveriš in jo po potrebi zamenjaš.
Rad bi bil pingvin.


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

php array sortiranje

Oddelek: Izdelava spletišč
91103 (826) Mesar
»

[PHP]Zamenjava šumnikov z html kodami

Oddelek: Programiranje
153907 (2185) mikesr
»

[php]$_POST iz šumnikov v nešumnike

Oddelek: Izdelava spletišč
71479 (1391) Gost
»

šumniki pretvarjanje z php

Oddelek: Programiranje
203065 (2798) FrEaKmAn
»

Seškoti...PHP ali MySql

Oddelek: Izdelava spletišč
51197 (1105) rkasteli

Več podobnih tem