با استفاده از تابع 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 برای مرتب‌سازی آرایه‌های انجمنی بر اساس چند شرط استفاده کنید.

توسط پژوهشگر در 202 روز قبل ساعت 02:53
دسته بندی ها: PHP PHP for beginner
arash در 202 روز قبل ساعت 08:12

array_multisort به‌طور هم‌زمان چند آرایه را مرتب می‌کند، پس قبل از فراخوانی قیمت‌ها را به عدد و نام‌ها را به رشته تبدیل کنید تا SORT_NUMERIC و SORT_STRING به درستی کار کنند. اگر لازم است ایندکس‌های اصلی حفظ شوند، ممکن است به کلید کمکی یا استفاده از usort با تابع مقایسه چند شرطی نیاز پیدا کنید. همچنین مطمئن شوید که طول آرایه‌ها برابر است تا از خطای ناهم‌سویی جلوگیری شود. با این کار آرایه محصولات به‌طور صعودی بر اساس قیمت و در صورت برابر بودن قیمت بر اساس نام مرتب شده و قابل چاپ خواهند بود.

گزارش

1 پاسخ

جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من

در حال بارگیری...
ورود به حساب کاربری