در یک اسکریپت PHP، آرایهای از محصولات شامل فیلدهای "name"، "price" و "rating" دارید؛ با استفاده از array_multisort محصولات را ابتدا بر اساس قیمت به صورت نزولی و در موارد مساوی بر اساس نام به صورت صعودی مرتب کنید و نتیجه مرتبشده را نمایش دهید.
11.0 بازدید آخرین ویرایش در 201 روز قبل ساعت 03:59 0.0
برای حل مسئله میتوانید از تابع array_column برای استخراج ستونهای "price" و "name" استفاده کنید و سپس با فراخوانی array_multisort($prices, SORT_DESC, $names, SORT_ASC, $products) آرایه محصولات را همزمان مرتب کنید. این روش در پردازش دادهها و نمایش در وب مفید است؛ توجه داشته باشید که array_multisort массивها را بازشاخصگذاری میکند و برای حفظ اندیسهای اصلی باید آن را مدیریت کنید یا از آرایههای عددی استفاده کنید. همچنین گزینههای مرتبسازی مثل SORT_REGULAR/SORT_NUMERIC و ثبات ترتیب را بسته به نوع داده انتخاب کنید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
بله، با استفاده از array_multisort میتوانید آرایهٔ محصولات را بر اساس قیمت به صورت نزولی و در صورت برابر بودن بر اساس نام به صورت صعودی مرتب کنید. اما این تابع کلیدهای اصلی را بازنشانی میکند و اندیسها را تغییر میدهد، پس حفظ کلیدها در پروسهٔ مرتبسازی نیاز به راهحل دیگری دارد. اگر حفظ کلیدها اهمیت دارد، از usort با یک مقایسهگر سفارشی استفاده کنید که ابتدا price را DESC و سپس name را ASC ارزیابی کند. همچنین اگر همچنان از array_multisort استفاده میکنید، قیمت را با SORT_NUMERIC مرتب کنید و برای نام از SORT_ASC استفاده کنید تا نتایج دقیق باقی بمانند.
گزارش