با استفاده از تابع array_multisort در PHP، یک آرایه از محصولات (هر محصول آرایهی انجمنی با کلیدهای "name" و "price") را ابتدا بر اساس قیمت به صورت صعودی و در صورت برابر بودن قیمت بر اساس نام به صورت صعودی مرتب کنید و آرایه مرتبشده را چاپ نمایید.
2.0 بازدید آخرین ویرایش در 202 روز قبل ساعت 02:53 0.0
برای حل این مسئله ستون قیمتها و نامها را با تابعی مثل array_column استخراج کنید و سپس با فراخوانی array_multisort($prices, SORT_ASC, $names, SORT_ASC, $products) آرایه محصولات را همزمان مرتب کنید؛ برای قیمتها از FLAG مثل SORT_NUMERIC استفاده کنید و برای نامها SORT_STRING. نکات مفید: قبلاً مطمئن شوید قیمتها به عدد تبدیل شدهاند، اگر لازم است ایندکسهای اصلی حفظ شوند کلیدها را ذخیره کنید یا بهجای array_multisort از usort برای مرتبسازی آرایههای انجمنی بر اساس چند شرط استفاده کنید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
array_multisort بهطور همزمان چند آرایه را مرتب میکند، پس قبل از فراخوانی قیمتها را به عدد و نامها را به رشته تبدیل کنید تا SORT_NUMERIC و SORT_STRING به درستی کار کنند. اگر لازم است ایندکسهای اصلی حفظ شوند، ممکن است به کلید کمکی یا استفاده از usort با تابع مقایسه چند شرطی نیاز پیدا کنید. همچنین مطمئن شوید که طول آرایهها برابر است تا از خطای ناهمسویی جلوگیری شود. با این کار آرایه محصولات بهطور صعودی بر اساس قیمت و در صورت برابر بودن قیمت بر اساس نام مرتب شده و قابل چاپ خواهند بود.
گزارش