الفرق بين المراجعتين ل"PHP/strnatcmp"

من موسوعة حسوب
< PHP
اذهب إلى التنقل اذهب إلى البحث
ط (استبدال النص - 'PHP\/([^|-]*)-([^|-]*)' ب'PHP/$1_$2')
ط (نقل عبد اللطيف ايمش صفحة PHP/Function/strnatcmp إلى PHP/strnatcmp: إعادة هيكلة التوثيق)
(لا فرق)

مراجعة 03:50، 4 أبريل 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()‎: ترتِّب المصفوفة باستعمال خوارزميَّة الترتيب الطبيعي دون تحسُّس حالة الأحرف.

مصادر