الدالة strnatcmp()‎ في PHP

من موسوعة حسوب
< PHP
مراجعة 07:20، 25 مارس 2018 بواسطة جميل-بيلوني (نقاش | مساهمات) (تصحيح خطأ بسيط.)
اذهب إلى التنقل اذهب إلى البحث

(PHP 4, PHP 5, PHP 7)

توازن الدالة strnatcmp()‎ بين سلسلتين نصيَّتين (strings) مع تحسُّس حالة الأحرف (كبيرة أو صغيرة) وذلك باستعمال خوارزميَّة الترتيب الطبيعي (natural order algorithm).

الوصف

int strnatcmp ( string $str1 , string $str2 )

توازن هذه الدالة بين السلسلة النصيَّة str1 والسلسلة النصيَّة str2 باستعمال خوارزميَّة الترتيب الطبيعي مع تحسُّس حال الأحرف. تُرتِّب هذه الخوارزميَّة السلاسل النصيَّة التي تحوي أحرفًا وأرقامًا بالطريقة ذاتها التي يُرتِّب بها البشر (لهذا السبب سميت "الترتيب الطبيعي") ثمَّ تبدأ عمليَّة الموازنة.

المعاملات

str1

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

str2

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

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

تُعاد قيمة أصغر من الصفر إن كان المعامل str1 أصغر من المعامل str2، وقيمة أكبر من الصفر إن كان str1 أكبر من str2، والقيمة صفر إن كان المعاملان السابقان متساويين.

أمثلة

مثال 1: إظهار الاختلاف بين تلك الخوارزميَّة التي تستعملها الدالة strnatcmp()‎ والخوارزميَّة الاعتياديَّة المُستخدمة في الحاسوب لترتيب السلاسل النصيَّة التي تستعملها الدالة strcmp()‎

<?php
$arr1 = $arr2 = array("img12.png", "img10.png", "img2.png", "img1.png");
echo "Standard string comparison\n";
usort($arr1, "strcmp");
print_r($arr1);
echo "\nNatural order string comparison\n";
usort($arr2, "strnatcmp");
print_r($arr2);
?>

سيُظهر المثال السابق النتيجة التالية:

Standard string comparison
Array
(
    [0] => img1.png
    [1] => img10.png
    [2] => img12.png
    [3] => img2.png
)

Natural order string comparison
Array
(
    [0] => img1.png
    [1] => img2.png
    [2] => img10.png
    [3] => img12.png
)

راجع صفحة موازنة السلسلة النصيَّة باستعمال الترتيب الطبيعي للمزيد من المعلومات.

انظر أيضًا

  • الدالة preg_match()‎: تبحث عن تعبير نمطي (regular expression) في سلسلة نصيَّة.
  • الدالة strcmp()‎: توازن بطريقة آمنة ثنائيًّا بين سلسلتين نصيَّتين.
  • الدالة strcasecmp()‎: توازن بطريقة آمنة ثنائيًّا بين سلسلتين نصيَّتين دون تحسُّس حالة الأحرف.
  • الدالة substr()‎: تعيد جزءًا من السلسلة النصيَّة.
  • الدالة stristr()‎: تبحث عن أول ظهور لسلسلة نصيَّة محدَّدة ضمن سلسلة نصيَّة أخرى دون التحسُّس لحالة الأحرف.
  • الدالة strncasecmp()‎: توازن بطريقة آمنة ثنائيًّا بين سلسلتين نصيَّتين لعدد محدَّد من المحارف الأولى دون التحسُّس لحالة الأحرف.
  • الدالة strncmp()‎: توازن بطريقة آمنة ثنائيًّا بين سلسلتين نصيَّتين لعدد محدَّد من المحارف الأولى.
  • الدالة strstr()‎: تبحث عن أول ظهور لسلسلة نصيَّة محدَّدة ضمن سلسلة نصيَّة أخرى.
  • الدالة strnatcasecmp()‎: توازن بين سلسلتين نصيَّتين دون تحسُّس حالة الأحرف وذلك باستعمال خوارزميَّة الترتيب الطبيعي (natural order algorithm).
  • الدالة natsort()‎: ترتِّب المصفوفة باستعمال خوارزميَّة الترتيب الطبيعي.
  • الدالة natcasesort()‎: ترتِّب المصفوفة باستعمال خوارزميَّة الترتيب الطبيعي دون تحسُّس حالة الأحرف.

مصادر