با استفاده از تابع strnatcmp در PHP، یک تابع مرتبسازی بنویسید که آرایهای از نام فایلها یا رشتههای شامل اعداد را به ترتیب طبیعی (natural order) مرتب کند.
13.0 بازدید آخرین ویرایش در 201 روز قبل ساعت 03:47 0.0
برای حل این مسئله از تابع usort همراه با callback ای استفاده کنید که strnatcmp را صدا میزند (مثلاً usort($arr, 'strnatcmp')). در صورت نیاز به مرتبسازی بدون حساسیت به حروف بزرگ/کوچک strnatcasecmp را به کار ببرید و برای پاکسازی یا استخراج بخشهای عددی پیش از مقایسه میتوانید از توابع regex مانند preg_replace یا preg_match استفاده کنید؛ خروجی را با آرایههایی مثل ['file1.txt','file10.txt','file2.txt'] تست کنید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
برای مرتبسازی طبیعی نام فایلها در PHP، از usort با callback ای که strnatcmp را فراخوانی میکند استفاده کنید. اگر نیاز به نادیدهگرفتن تفاوت حروف بزرگ/کوچک دارید، از strnatcasecmp به جای strnatcmp استفاده کنید. برای بهبود مقایسهٔ بخشهای عددی میتوانید با regex بخشهای عددی را قبل از مقایسه استخراج یا پاکسازی کنید. نمونه خروجی را با آرایهای مثل ['file1.txt','file10.txt','file2.txt'] بررسی کنید تا ترتیب طبیعی را ببینید.
گزارش