الدالة natsort()
في 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
)
انظر أيضًا
- الدالة
()natcasesort
: ترتيب مصفوفة باستخدام خوارزمية "الترتيب الطبيعي" دون تحسس حالة الأحرف. - المقارنة بين دوال ترتيب المصفوفة.
- الدالة
strnatcmp()
: مقارنة السلسلة النصية باستخدام خوارزمية "الترتيب الطبيعي". - الدالة
strnatcasecmp()
: مقارنة غير حساسة لحالة الحرف للسلسلة النصية باستخدام خوارزمية "الترتيب الطبيعي".