تخطَّ إلى المحتوى

usort()

دالة usort للفرز المخصّص usort()

تفرز مصفوفة حسب دالة مقارنة مخصّصة تكتبها أنت، وتُعيد ترقيم الفهارس بعد الفرز.

usort(array, callback) تستدعي دالة مقارنة على كل زوج عناصر أثناء الفرز؛ تُعيد الدالة رقمًا سالبًا إن كان العنصر الأول أصغر، صفرًا إن تساويا، وموجبًا إن كان أكبر. أسهل طريقة لكتابتها هي عامل السفينة الفضائية <=>.

usort تُعدِّل المصفوفة الأصلية بالمرجع، وتُعيد ترقيم المفاتيح دائمًا (0، 1، 2...). لفرز مصفوفة ترابطية مع الحفاظ على مفاتيحها استخدم uasort بنفس المبدأ.

الصياغة

usort(array &$array, callable $callback): true

📄 مثال

$users = [["age" => 30], ["age" => 18], ["age" => 22]];
usort($users, fn($a, $b) => $a["age"] <=> $b["age"]);
foreach ($users as $u) echo $u["age"] . " ";   // 18 22 30

أهم النقاط

العنصرالوظيفة
callback(a, b)تُرجع سالبًا/صفرًا/موجبًا حسب ترتيب a مقابل b
<=>عامل السفينة الفضائية — أقصر طريقة لكتابة المقارنة

💡 نصائح عملية

  • استقرار الفرز (الحفاظ على ترتيب العناصر المتساوية) مضمون منذ PHP 8.0

⚠️ أخطاء شائعة

  • توقّع الحفاظ على المفاتيح الأصلية بعد usort — استخدم uasort لو احتجتها

خصائص ذات صلة

🎓 تريد فهم الصورة الكاملة خطوة بخطوة؟ ابدأ من مسار PHP الكامل بالعربي.