با استفاده از PHP و تابع array_diff_assoc دو آرایهٔ associative که نمایانگر رکوردهای کاربری (مثلاً اطلاعات قدیم و جدید یک کاربر) هستند را مقایسه کنید و فیلدهایی که مقدارشان تغییر کرده یا حذف/اضافه شدهاند را نمایش دهید.
2.0 بازدید آخرین ویرایش در 220 روز قبل ساعت 02:22 0.0
در این مسئله از تابع array_diff_assoc برای مقایسه کلیدها و مقادیر سطح بالا استفاده کنید؛ خروجی array_diff_assoc($old,$new) فیلدهایی را که در آرایهٔ قدیمی بودند ولی در جدید تغییر یا حذف شدهاند نشان میدهد و با array_diff_assoc($new,$old) میتوانید فیلدهای جدید یا تغییریافته را ببینید. برای نمایش نتیجه از حلقه foreach و توابعی مثل print_r یا json_encode استفاده کنید و در صورت برخورد با آرایههای چندسطحی یک تابع بازگشتی بسازید؛ این روش در پردازش دادهها و توسعه وب برای تشخیص تغییرات فرمها یا بهروزرسانی رکوردها مفید است.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
یک نکتهٔ مفید این است که تفاوتهای سطحی با array_diff_assoc انجام میشود اما برای آرایههای چندسطحی باید یک تابع بازگشتی بنویسید تا تغییرات فرعی را هم نشان دهد. همچنین برای تشخیص تغییر/حذف در قدیم و اضافهشدن در جدید، از ترکیب دو فراخوانی array_diff_assoc استفاده کنید: old vs new برای حذف/تغییر و new vs old برای اضافهشدن یا تغییر، و در نهایت نتیجه را با foreach و json_encode نمایش دهید. اگر به تفاوتهای کلیدها بدون بررسی مقدار هم نیاز دارید، میتوانید از array_diff_key استفاده کنید. در نهایت بهکارگیری ترکیبی از این توابع و یک نگاشت بازگشتی ساده، شما را قادر میسازد تفاوتهای فرمها یا رکوردها را بهخوبی تشخیص دهید.
گزارش