آموزش توابع کار با آرایه ها (Arrays) در PHP – قسمت اول

PHP   
28 نوامبر 2014   

پیش از این با آرایه ها آشنا شدیم:

آشنایی با آرایه ها در PHP

در این آموزش می خواهیم به توضیح توابعی بپردازیم که قدرت زیادی برای کار با آرایه ها را به ما می دهند. آرایه ها کاربرد زیادی در صفحات وب دارند پس وچود چنین توابعی می تواند به ما کمک کند.

خانه های هر آرایه را با کلید (key) می شناسیم.

تابع count()

با استفاده از تابع count() می توان تعداد خانه های یک آرایه را بدست آوریم. شکل کلی استفاده از این تابع به شکل زیر است:

count(array)

پارامترها:

array: نام آرایه ورودی مشخص می شود.

خروجی:

تعداد خانه های آرایه مشخص شده در پارامتر array

مثال:

 

خروجی:

4

تابع array_change_key_case()

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

array_change_key_case(array, case)

پارامترها:

array: آرایه ورودی را مشخص می کند.

case: تبدیل کلیدهای آرایه به حروف بزرگ یا کوچک را مشخص می کند. این پارامتر اختیاری است و می تواند یکی از دو مقدار زیر را دریافت کند:

CASE_LOWER: این مقدار کلیدهای آرایه را به حروف کوچک تبدیل می کند و مقدار پیشفرض است.

CASE_UPPER: این مقدار کلیدهای آرایه را به حروف بزرگ تبدیل می کند.

خروجی:

یک آرایه می باشد و همان آرایه ورودی با حروف بزرگ یا کوچک برای کلیدهایش.

مثال:

 

خروجی:

مثالی از استفاده تابع array_change_key_case() در PHP

خروجی

همانطور که مشاهده کردید ابتدا یک آرایه با نام person را مقداردهی کردیم. سپس با استفاده از تابع array_change_key_case() و مقدار CASE_UPPER برای پارامتر case کلیدهای آرایه person را به حروف بزرگ تبدیل کردیم و آرایه حاصل را با استفاده از تابع print_r() چاپ کردیم.

توجه کنید که این تابع تنها کلیدهای یک آرایه را تغییر می دهد نه مقادیر آن را.

تابع array_combine()

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

array_combine(keys, values)

پارامترها:

keys: این پارامتر آرایه اول که نقش کلیدها را دارد مشخص می کند.

values: این پارامتر نیز یک آرایه می باشد که مقادیر کلیدهای آرایه پارامتر keys را مشخص می کند!!!

خروجی:

یک آرایه است که کلیدهای آن آرایه ی مشخص شده در پارامتر keys و مقادیر آن کلیدها آرایه ی ورودی در پارامتر values می باشد.

مثال:

 

خروجی:

مثالی از استفاده تابع array_combine() در php

خروجی

تابع array_diff()

این تابع چندین آرایه (به تعداد دلخواه) را به عنوان پارامتر دریافت می کند. سپس مقادیری از اولین آرایه (مشخص شده به عنوان اولین پارامتر) را برمی گرداند که در آرایه های دیگر وجود نداشته باشد. کار این تابع در اصل مقایسه چندین آرایه با یکدیگر می باشد. شکلی کلی استفاده از این تابع به صورت زیر می باشد:

array_diff(array1, array2, array3, …)

پارامترها:

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

array2: آرایه دوم که با آرایه اول مقایسه می شود (وجود حداقل یک آرایه بعد از اولین پارامتر الزامی است).

array3 , array4, …: آرایه های بعدی که با آرایه اول مقایسه می شوند (این پارامترها اختیاری است).

خروجی:

یک آرایه است شامل آن دسته از مقادیر آرایه اول که در آرایه های بعدی وجود ندارد.

مثال:

 

خروجی:

مثالی از استفاده تابع array_diff در php

خروجی

توجه کنید که این تابع به حروف بزرگ و کوچک حساس است.

همانطور که مشاهده می کنید در آرایه colors1 تنها مقدار Red است که در آرایه های بعدی (colors2 و color3) وجود ندارد.

تابع array_diff_assoc()

این تابع شبیه به تابع array_diff() است با این تفاوت که علاوه بر مقایسه مقادیر، کلیدهای چند آرایه را نیز با هم مقایسه می کند. کلیدهایی از آرایه اول را برمی گرداند که آن کلید به همراه مقدارش در آرایه های دیگر وجود نداشته باشد. شکل کلی استفاده از این تابع به صورت زیر است:

array_diff_assoc(array1, array2, array3, …)

پارامترها:

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

array2: آرایه دوم که با آرایه اول مقایسه می شود (وجود حداقل یک آرایه بعد از اولین پارامتر الزامی است).

array3 , array4, …: آرایه های بعدی که با آرایه اول مقایسه می شوند (این پارامترها اختیاری است).

خروجی:

یک آرایه است شامل آن دسته از کلیدها و مقادیری از  آرایه اول که در آرایه های بعدی وجود ندارد. برای تفهیم این موضوع به مثال توجه کنید.

مثال1:

اگر همان مثالی را که برای تابع array_diff() زدیم را با این تابع بررسی کنیم کد برنامه و خروجی به شکل زیر خواهد بود:

 

خروجی:

مثالی از استفاده از تابع array_diff_assoc() در php

خروجی

با این که مقادیر Black و Green که در آرایه اول وجود دارد در آرایه های بعدی وجود دارد اما باز هم به خروجی فرستاده شد.

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

در این مثال، مثلا مقدار Black در آرایه اول (colors1) دارای کلید 0 می باشد (آرایه های از 0 شروع می شوند) اما در آرایه colors2 این مقدار شامل کلید 2 است. همچنین مقدار Green در آرایه colors1 دارای کلید 2 و در آرایه colors3 دارای کلید 0 است. پس هیچ یک از این دو مقدار (و کلید) از خروجی حذف نمی شوند.

مثال2:

در این مثال کمی جای مقادیر را تغییر دادیم و نتیجه را بررسی کردیم:

 

خروجی:

مثالی از استفاده از تابع array_diff_assoc() در php

خروجی

همانطور که می بینید در این مثال جای مقدار Green را درون آرایه colors3 تغییر دادیم به صورتی که در هردو آرایه colors1 و colors3 مقدار Green دارای کلید 2 است پس از خروجی حذف می شود و خروجی به شکل بالا در می آید.

تابع array_diff_key()

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

array_diff_key(array1, array2, array3, …)

پارامترها:

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

array2: آرایه دوم که با آرایه اول مقایسه می شود (وجود حداقل یک آرایه بعد از اولین پارامتر الزامی است).

array3 , array4, …: آرایه های بعدی که با آرایه اول مقایسه می شوند (این پارامترها اختیاری است).

خروجی:

یک آرایه است شامل آن دسته از کلیدهای آرایه اول که در آرایه های بعدی وجود ندارد.

این تابع معمولا برای آرایه های دو یا چندبعدی استفاده می شود. از نوشتن مثال خودداری می کنیم (با توجه به توضیح دو تابع پیش احتمالا با نحوه ی کار این تابع آشنا شده اید).

 

تابع array_intersect()

کار این تابع شبیه به عملکرد تابع array_diff() است با این تفاوت که اگر کلیدهایی را علاوه بر آرایه اول در دیگر آرایه ها نیز یافت شود، به جای این که آن ها را از خروجی حذف کند، آن را به خروجی می فرستد. این تابع هم برای مقایسه چندین آرایه با یکدیگر است. شکل کلی این تابع به صورت زیر است:

array_intersect(array1, array2, array3, …)

پارامترها:

array1: اولین آرایه که با آرایه های دیگر مقایسه می شود و در صورت وجود هر مقدار از این آرایه در آرایه های دیگر، آن مقدار به خروجی فرستاده می شود.

array2: آرایه دوم که با آرایه اول مقایسه می شود (وجود حداقل یک آرایه بعد از اولین پارامتر الزامی است).

array3 , array4, …: آرایه های بعدی که با آرایه اول مقایسه می شوند (این پارامترها اختیاری است).

خروجی:

یک آرایه است شامل آن دسته از مقادیر آرایه اول که در آرایه های بعدی نیز وجود دارد.

از نوشتن مثال خودداری می کنیم زیرا این طور به نظر می رسد که با کار این تابع آشنا شده باشید. 🙂