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

من موسوعة حسوب
< PHP

(PHP 4, PHP 5, PHP 7)

تُرتب الدالة sort()‎‎‎‎‎‎‎‎‎‎‎‎‎‎ عناصر المصفوفة.

الوصف

bool sort ( array &$array [, int $sort_flags = SORT_REGULAR ] )

تُرتب هذه الدالة المصفوفة. ويصبح ترتيب العناصر من الأدنى إلى الأعلى عند انتهاء هذه الدالة.

ملاحظة: إذا تساوت مقارنة عنصرين، فإن ترتيبهما النسبي في المصفوفة المُرتّبة يكون غير محدد.

المعاملات

array

المصفوفة المُدخلة.

sort_flags

يمكن استخدام المعامل الثاني الاختياري sort_flags لتعديل سلوك الترتيب باستخدام هذه القيم:

رايات أنواع الترتيب:

  • SORT_REGULAR: مقارنة العناصر بشكل طبيعي (دون تغيير الأنواع).
  • SORT_NUMERIC: مقارنة العناصر رقميًا.
  • SORT_STRING: مقارنة العناصر كسلاسل نصية.
  • SORT_LOCALE_STRING: مقارنة العناصر كسلاسل نصية، استنادًا إلى المحلية الحالية. وتُستخدم المحلية والتي يمكن تغييرها باستخدام setlocale()‎.
  • SORT_NATURAL: مقارنة العناصر كسلاسل باستخدام "الترتيب الطبيعي" مثل natsort()‎.
  • SORT_FLAG_CASE: يمكن دمجه (باستخدام المعامل الثنائي OR) مع SORT_STRING أو SORT_NATURAL لترتيب السلاسل بطريقة غير حساسة لحالة الحرف.

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

تُعيد الدالة القيمة TRUE عند نجاح عملها، أو FALSE عند فشل تنفيذها.

سجل التغييرات

الإصدار الوصف

5.4.0

إضافة دعم لـ SORT_NATURAL و SORT_FLAG_CASE كقيم محتملة للمعامل sort_flag.
5.0.2 إضافة SORT_LOCALE_STRING.

أمثلة

المثال 1: مثال على الدالة ()‎‎sort

<?php

$fruits = array("lemon", "orange", "banana", "apple");
sort($fruits);
foreach ($fruits as $key => $val) {
    echo "fruits[" . $key . "] = " . $val . "\n";
}

?>

سوف تكون مُخرجات المثال أعلاه كالتالي:

fruits[0] = apple
fruits[1] = banana
fruits[2] = lemon
fruits[3] = orange

رُتبت المصفوفة fruits بترتيب هجائي. المثال 2: مثال على الدالة sort()‎ باستخدام الترتيب الطبيعي غير الحساس لحالة الأحرف

<?php

$fruits = array(
    "Orange1", "orange2", "Orange3", "orange20"
);
sort($fruits, SORT_NATURAL | SORT_FLAG_CASE);
foreach ($fruits as $key => $val) {
    echo "fruits[" . $key . "] = " . $val . "\n";
}

?>

سوف تكون مُخرجات المثال أعلاه كالتالي:

fruits[0] = Orange1
fruits[1] = orange2
fruits[2] = Orange3
fruits[3] = orange20

رُتبت المصفوفة fruits مثلما في حالة استخدام الدالة natcasesort()‎‎.

ملاحظات

ملاحظة: تضبط هذه الدالة مفاتيح جديدة للعناصر في المصفوفة array. وستزيل أي مفاتيح موجودة قد سبق تعيينها، بدلاً من مجرد إعادة ترتيب المفاتيح.

ملاحظة: مثل معظم دوال الترتيب في PHP، تستخدم الدالة sort()‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎ تطبيقًا لـخوارزمية Quicksort. ويُختار المحور (pivot) في منتصف القسم مما يحقق الوقت الأمثل في حالة المصفوفات المُرتّبة بالفعل.

تحذير: كن حذرًا عند ترتيب مصفوفات بقيم أنواع مختلطة لأن الدالة sort()‎‎‎‎‎‎‎‎‎‎‎‎‎ يمكن أن تؤدي إلى نتائج غير متوقعة.

انظر ايضًا

مصادر