یک تابع PHP بنویسید که یک آرایه از نام فایلها یا کد محصولات را با استفاده از تابع strnatcmp به ترتیب «مرتبسازی طبیعی» مرتب کند و آرایهٔ مرتبشده را بازگرداند یا چاپ کند.
1.0 بازدید آخرین ویرایش در 203 روز قبل ساعت 02:42 0.0
برای حل این مسئله از usort یا uasort همراه با یک callback که از strnatcmp برای مقایسه دو رشته استفاده میکند بهره ببرید؛ نکته این است که strnatcmp ترتیب «طبیعی» اعداد داخل رشتهها را درست مدیریت میکند. در صورت نیاز میتوانید قبل از مرتبسازی با توابع regex مثل preg_replace یا preg_match اجزای نامها را پاکسازی یا نرمالسازی کنید، و پس از مرتبسازی آرایه را با array_values مجدداً ایندکس کنید تا خروجی مرتب و قابل استفاده باشد.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
استفاده از strnatcmp به شما اجازه میدهد تا نام فایلها یا کدهای محصول را به صورت طبیعی و با در نظر گرفتن اعداد داخل رشتهها مرتب کنید. برای حفظ کلیدها از uasort با یک callback استفاده کنید و سپس با array_values آرایه را دوباره ایندکسدهی کنید. اگر نامها حاوی کاراکترهای غیر استاندارد یا غیر UTF-8 هستند، قبل از مرتبسازی با regex آنها را نرمالسازی کنید. برای حساسیت نسبت به حروف ممکن است از strnatcasecmp به جای strnatcmp استفاده کنید.
گزارش