الفرق بين المراجعتين لصفحة: «PHP/similar text»

من موسوعة حسوب
< PHP
أضفت المحتوى
 
إضافة عنوان الصفحة والتصنيفات
سطر 1: سطر 1:
 
<noinclude>{{DISPLAYTITLE:الدالة <code>similar_text()</code>‎ في PHP}}</noinclude>
= الدالة similar_text()‎ في PHP =
(PHP 4, PHP 5, PHP 7)
(PHP 4, PHP 5, PHP 7)


سطر 53: سطر 52:
== مصادر ==
== مصادر ==
* [http://php.net/manual/en/function.similar-text.php صفحة الدالة similar_text‎ في توثيق PHP الرسمي.]
* [http://php.net/manual/en/function.similar-text.php صفحة الدالة similar_text‎ في توثيق PHP الرسمي.]
[[تصنيف:PHP]]
[[تصنيف:PHP Function]]
[[تصنيف:PHP String]]

مراجعة 11:50، 9 أبريل 2018

(PHP 4, PHP 5, PHP 7)

تحسب الدالة similar_text()‎ عدد الأحرف المتشابهة في سلسلتين نصيتين.

الوصف

int similar_text ( string $first , string $second [, float &$percent ] )

تحسب الدالة similar_text()‎ نسبة التشابه بين سلسلتين كما هو مذكور في كتاب Programming Classics: Implementing the World's Best Algorithms by Oliver‏ (ISBN 0-131-00413-1). لاحظ أن هذا التنفيذ لا يَستخدِم مكدسًا (stack) كما في الشفرة التي ذكرها المؤلف في كتابه، ولكن تجري استدعاءات تكرارية (recursive calls) مما قد يساهم أو قد لا يساهم في تسريع العملية بأكملها. لاحظ أيضًا أن تعقيد هذه الخوارزمية هو O(N**3)‎ حيث N هو طول أطول سلسلة نصية.

المعاملات

first

السلسلة النصية الأولى.

second

السلسلة النصية الثانية.

ملاحظة: قد يؤدي تبديل السلسلة الأولى بالثانية أو العكس إلى تغيرٍ في النتيجة (نسبة التشابه). انظر المثال أدناه.

percent

بتمرير مرجع (reference) كوسيط ثالث، فستحسب الدالة similar_text()‎ التشابه في النسبة المئوية بقسمة النتيجة على متوسط أطوال السلسلتين المعطيَين مضروبًا (أي المتوسط) بالعدد 100.

القيم المعادة

تعيد الدالة similar_text()‎ عدد المحارف المتطابقة في السلسلتين المدخلتين.

يُحسب عدد المحارف المتطابقة بالعثور على أطول سلسلة فرعية مشتركة، ثم إعادة إجراء هذه العملية للسلسلة النصية التي تسبق السلسلة النصية الفرعية المشتركة والتي تليها تكراريًا (recursively). ثم ستُجمَع أطوال جميع الأجزاء الفرعية المشتركة.

أمثلة

المثال 1: مثال على تبديل معاملات الدالة similar_text()‎

يُظهِرُ المثال الآتي تبديل المعامل first والمعامل second وتأثير ذلك على النتيجة:

<?php

$sim = similar_text('bafoobar', 'barfoo', $perc);

echo "similarity: $sim ($perc %)\n";

$sim = similar_text('barfoo', 'bafoobar', $perc);

echo "similarity: $sim ($perc %)\n";

تكون نتيجة المثال السابق كالآتي:

similarity: 5 (71.428571428571 %)

similarity: 3 (42.857142857143 %)

انظر أيضًا

  • الدالة levenshtein()‎: حساب مسافة Levenshtein بين سلسلتين.
  • الدالة soundex()‎: حساب مفتاح soundex لسلسلة.

مصادر