(PHP 4, PHP 5, PHP 7, PHP 8)
similar_text — İki dizge arasındaki benzerliği hesaplar
Programming Classics: Implementing the World's Best Algorithms by Oliver (ISBN 0-131-00413-1) kitabında açıkladığı şekilde iki dizge arasındaki benzerliği hesaplar. Ancak bu gerçeklenim Oliver'in kod örneğindeki gibi bir yığıt kullanmaz. Ayrıca bu algoritmanın hesaplama karmaşıklığı, N en uzun dizgenin uzunluğu olmak üzere O(N**3)'tür.
dizge1
İlk dizge.
dizge2
İkinci dizge.
Bilginize:
dizge1
vedizge2
yer değiştirise farklı sonuçlar ortaya çıkabilir; aşağıdaki örnek fikir verebilir.
yüzde
Benzerlik oranını belirtmek için kullanılır. Bir gönderimi üçüncü bağımsız değişkende aktararak, similar_text() işlevinin sonucu verilen dizgelerin uzunluklarının ortalamasının 100 katına bölünerek benzerlik yüzde olarak hesaplanır.
Her iki dizgede eşleşen karakterlerin sayısı döner.
Eşleşen karakterlerin sayısı, en uzun ilk ortak alt dizgeyi bularak ve bunu önekler ve son ekler için ard arda bularak hesaplanır. Bulunan tüm ortak alt dizelerin uzunlukları toplanır.
Örnek 1 - similar_text() bağımsız değişken takaslama örneği
dizge1
ve dizge2
takaslandığında farklı sonuçlar elde edileceğini gösteren örnek.
<?php
$sim = similar_text('bafoobar', 'barfoo', $perc);
echo "similarity: $sim ($perc %)\n";
$sim = similar_text('barfoo', 'bafoobar', $perc);
echo "similarity: $sim ($perc %)\n";
Yukarıdaki örnek şuna benzer bir çıktı üretir:
similarity: 5 (71.428571428571 %) similarity: 3 (42.857142857143 %)