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

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

(PHP 4, PHP 5, PHP 7)

تُرتّب الدالة natsort()‎‎‎‎‎‎‎ عناصر المصفوفة باستخدام خوارزمية "الترتيب الطبيعي".

الوصف

bool natsort ( array &$array )

تُنفذ هذه الدالة خوارزمية تُرتّب سلاسل نصية فيها أحرف وأرقام بنفس الطريقة التي يُرتّب بها الإنسان مع الحفاظ على علاقة المفاتيح بالقيم المرتبطة بها. وتسمى هذه الطريقة باسم "الترتيب الطبيعي". ويمكن ملاحظة مثال على الفرق بين هذه الخوارزمية وخوارزميات الترتيب المعتادة لترتيب السلاسل النصية الرقمية (المستخدمة في الدالة sort()‎‎‎) في المثال التالي.

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

المعاملات

array

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

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

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

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

الإصدار الوصف
5.2.10 تجاهل سلاسل حشو الصفر الرقمية (على سبيل المثال، '00005' تتجاهل الآن الحشو بالرقم 0).

أمثلة

المثال 1: أمثلة توضح الاستخدام الأساسي للدالة natsort()‎‎‎‎‎‎‎

<?php
$array1 = $array2 = array("img12.png", "img10.png", "img2.png", "img1.png");

asort($array1);
echo "Standard sorting\n";
print_r($array1);

natsort($array2);
echo "\nNatural order sorting\n";
print_r($array2);
?>

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

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

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

لمزيد من المعلومات، راجع صفحة "مقارنة سلسلة الترتيب الطبيعي" لمارتن بول (Martin Pool). المثال 2: أمثلة توضح الإمكانيات المحتملة للدالة natsort()‎‎‎‎‎‎‎

<?php
echo "Negative numbers\n";
$negative = array('-5','3','-2','0','-1000','9','1');
print_r($negative);
natsort($negative);
print_r($negative);

echo "Zero padding\n";
$zeros = array('09', '8', '10', '009', '011', '0'); 
print_r($zeros);
natsort($zeros);
print_r($zeros);
?>

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

Negative numbers
Array
(
    [0] => -5
    [1] => 3
    [2] => -2
    [3] => 0
    [4] => -1000
    [5] => 9
    [6] => 1
)
Array
(
    [2] => -2
    [0] => -5
    [4] => -1000
    [3] => 0
    [6] => 1
    [1] => 3
    [5] => 9
)

Zero padding
Array
(
    [0] => 09
    [1] => 8
    [2] => 10
    [3] => 009
    [4] => 011
    [5] => 0
)
Array
(
    [5] => 0
    [1] => 8
    [3] => 009
    [0] => 09
    [2] => 10
    [4] => 011
)

انظر أيضًا

مصادر