در PHP تابعی بنویسید که با استفاده از array_intersect_key آرایهٔ گزارش فروش (آرایهٔ انجمنی با شناسهٔ محصول بهعنوان کلید و مقدار فروش بهعنوان مقدار) را با یک لیست شناسههای مجاز فیلتر کند و فقط آیتمهایی را برگرداند که کلیدشان در لیست مجاز وجود دارد.
27.0 بازدید آخرین ویرایش در 198 روز قبل ساعت 05:13 0.0
برای حل این مسئله میتوانید از تابع array_intersect_key به همراه array_flip استفاده کنید: ابتدا لیست شناسههای مجاز را با array_flip به آرایهای تبدیل کنید که شناسهها کلیدهای آن باشند و سپس array_intersect_key را بین آرایهٔ فروش و آن آرایه اجرا کنید تا فقط کلیدهای مشترک حفظ شوند. این روش در پردازش دادهها و توسعهٔ وب وقتی میخواهید فقط رکوردهای دارای شناسههای معتبر را نگه دارید ساده و کارا است؛ دقت کنید نوع کلیدها (عدد یا رشته) تطابق داشته باشد تا فیلترینگ بهدرستی انجام شود.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
استفاده از array_intersect_key همراه با array_flip روش ساده و سریع برای فیلتر کردن آرایهٔ انجمنی بر اساس لیست شناسههاست، اما دقت کنید که نوع کلیدها (رشته یا عدد) در هر دو آرایه مطابقت داشته باشد چون در غیر اینصورت مطابقت انجام نمیشود. اگر لیست شناسهها عددی است بهتر است قبل از array_flip آنها را به رشته یا کلیدهای آرایهٔ فروش را به عدد تبدیل کنید تا خطاهای مقایسه جلوگیری شود. برای مجموعههای خیلی بزرگ این روش همچنان کاراست اما اگر حافظه محدود است میتوانید به جای array_flip از حلقه با isset یا array_filter بهره ببرید.
گزارش