تفاوت بین آرایه ها در php

  • منتشر شده در تاریخ

تفاوت بین آرایه ها در php

در میان لیست بزرگی از توابع آرایه ای در php , در اینجا قصد دارم تعدادی از این توابع را برای یافتن تفاوت بین آرایه ها در php و ورودی های آرایه ها پیدا کنیم .می توانیم تفاوت آرایه ها را با استفاده از کلید (key) یا مقدار (value) آن ها پیدا کنیم.

بعضی از توابع یافتن تفاوت بین آرایه ها در php بصورت زیر هستند

  • Array_diff
  • Array_diff_key
  • Array_diff_assoc

از میان لیست توابع بالا , تفاورت بین آرایه ها می تواند بر اساس بررسی ایندکس (index) که توسط یک تابع سفارشی به عنوان callback استفاده می شود , بررسی شود . این توابع php بصورت زیر هستند:

تفاوت بین آرایه ها در php

  • Array_diff_ukey
  • Array_diff_uassoc

میتوانیم از لیست دیگری از توابع php برای یافتن تفاوت بین ورودی آرایه ها توسط مقایسه ورودی های آن ها که با استفاده از توابع callback (بازگشتی) که توسط کاربر تعریف شده اند , بهره ببریم

  • Array_udiff
  • Array_udiff_key
  • Array_udiff_assoc

حالا هر یک از توابع بالا مربوط به یافتن تفاوت بین آرایه ها در php را با جزئیات بررسی میکنیم

یافتن تفاوت بین آرایه ها در php بدون callback

ابتدا قصد داریم اطلاعات بیشتری از لیست توابع تفاوت آرایه ها ی لیست شده بدست آوریم . این توابع برای مقایسه آرایه ها در php بر اساس آرگومان آن ها به ترتیب کلید , مقدار و مقادیر ایندکس های همبسته استفاده می شوند.

Array_diff

این تابع حداقل دو آرایه می پذیرد اما حداکثر میتواند چندین آرایه بر اساس آرگومان ورودی قبول کند . المان اولی آرایه واردی با تمام آرایه های ورودی بعدی مقایسه می شود.

اگر المانی از آرایه اولی در هیچ یک از بقیه آرایه ها وجود نداشت , در اینصورت یکی از المان ها را در خروجی آرایه برگشت داده خواهد شد . مشابه آن کل آرایه با بقیه آرایه ها مقایسه خواهد شد.

Array_diff_key

این تابع مشابه تابع array_diff در php عمل می کند با این تفاوت که برای مقایسه المان های آرایه به ترتیب کلید (key) عمل می کند . اگر هیچ یک از کلید های آرایه اولی با دیگر ورودی های آرایه های دیگر یکسان نبود , پس به آرایه نتیجه اضافه می شود .

Array_diff_assoc

این تابع برای مقایسه مقادیر (value) بین آرایه ها استفاده می شود که بر اساس کلید ایندکس های همبسته مقایسه می شود . بنابراین , حتی اگر مقادیر یکسان باشد و ایندکس های آنها  مشابه نباشد , آن دو آرایه متفاوت از هم تلقی خواهند شد

می توانیم درک درست و واضحی از استفاده از توابع بالا را در مثال زیر ببینم :

در اسکریپت php بالا , زمانی که ورودی های آرایه را با هم مقایسه می کنیم و نتیجه را با استفاده از تابع print_r چاپ می کنیم , نتیجه زیر را مشاهده خواهیم کرد.

با استفاده از تابع array_diff , مقدار موجود در $array_from و نا موجود در آرایه دیگر به عنوان خروجی آرایه برگشت داده می شود . مشابه آن تفاوت بین آرایه ها در php همانند خرجی بالا قابل مشاهده است

تفاوت بین آرایه ها در php با تابع برگشتی (callback)

در این نوع از پیدا کردن تفاوت بین آرایه ها در php , توابع تعریف شده توسط کاربر  به عنوان تابع برگشتی استفاده می شود . برای این منظور , نیاز است که نام تابع برگشتی را به عنوان یک آرگومان به توابع از پیش تعریف شده php برای یافتن تفاوت بین آرایه ها در php پاس بدیم.

می توانیم این توابع آرایه ای را بر اساس دلیل استفاده آنها به عنوان تابع برگشتی آنها دسته بندی کنیم. در اوایل مقاله توابع مربوطه را لیست کردیم . در اینجا قصد داریم آن ها را با توضیحات لازم برای مشخص کردن هدف استفاده آنها نام ببریم

  • Array_diff_ukey,array_diff_uassoc برای زمانی که الزامی است کلید و ایندکس را بر اساس مقدار آنها به صورت مرتب مقایسه کنیم.
  • Array_udiff,array_udiff_uassoc برای مقایسه داده های آرایه با استفاده از توابع ساخته شده توسط خود ما استفاده میشود.
  • به علاوه , یک تابع دیگر php به نام array_udiff_uassoc که برای مقایسه داده ای و ایندکس کلید ها استفاده می شود .

هر گونه مشکلی در پیاده سازی کدها داشتید ، از قسمت نظرات اقدام کنید . سریعا ، پاسخگوی سوالات شما هستیم .

موفق و پیروز باشید.

حسن شفیعی علاقه خاصی به برنامه نویسی وب و موبایل دارم و هر روز تلاش می کنم به این حوزه مسلط تر شوم و اطلاعاتم را به شکل کاربردی برای علاقه مندان در وب به اشتراک بگذارم

آموزش های رایگان بیشتر در اینستاگرام ما ...

NETPARADIS /
مطالب زیر را حتما بخوانید
دیدگاه کاربران

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

    دوره های آموزشی

    دانلود رایگان کتاب آموزش PHP

    صفر تا صد PHP و MySQL را یکجا یاد بگیرید
    همین الان دانلود کن
    نگران نباشید. ایمیل‌های مزاحم نمی‌فرستیم
    close-link