array_key_exists، in_array و array_search - آزمون آنلاین پی اچ پی php
array_key_exists، in_array و array_search
می خوام در مورد سه تا از بهترین دوستام تو دنیای PHP یعنی array_key_exists، in_array و array_search باهات حرف بزنم. این سه تا، کارمون رو برای گشت و گذار تو آرایه ها خیلی راحت می کنن. اما هر کدومشون یه کار خاص انجام میدن و باید بدونی کی از کدوم استفاده کنی.

array_key_exists: رفیق کلیدشناس
این تابع مثل یه کارآگاه عمل می کنه که فقط دنبال کلیدهاست. بهش یه کلید میدی، اونم میره تو آرایه و چک می کنه ببینه همچین کلیدی اونجا هست یا نه.
اصلاً هم به مقدار اون کلید کاری نداره. حتی اگه مقدارش null باشه، این تابع بازم می تونه وجود کلید رو تشخیص بده. یادت باشه، اگه دنبال یه کلید خاصی می گردی، این بهترین گزینه است.
$user = [
'name' => 'Ali',
'age' => 30,
'city' => 'Tehran'
];
if (array_key_exists('city', $user)) {
echo "شهر کاربر وجود دارد.";
}
اگه به جای 'city' دنبال 'gender' بگردیم، خروجی چیزی نیست چون همچین کلیدی نداریم.
in_array: رفیق مقدارشناس
این یکی برعکس array_key_exists، فقط دنبال مقدار می گرده. یعنی بهش میگی "آیا فلان مقدار توی این آرایه هست؟" اونم میره دونه دونه مقادیر رو چک می کنه و جواب میده.
اینجا کلیدها براش هیچ اهمیتی ندارن. خیلی ساده و سرراست کار می کنه و اگه دنبال یه مقدار خاصی می گردی، این همون دوستیه که نیاز داری.
$fruits = ['apple', 'banana', 'orange'];
if (in_array('banana', $fruits)) {
echo "موز در آرایه وجود دارد.";
}
اگر 'kiwi' رو جستجو کنیم، خروجی ای نمی بینیم.
array_search: رفیق همه کاره
این تابع یه جورایی ترکیب اون دوتاست، اما یه کار اضافه تر هم انجام میده. اونم مثل in_array دنبال مقدار می گرده، اما اگه پیداش کرد، کلید اون مقدار رو بهت برمی گردونه.
این خیلی به کارت میاد وقتی هم می خوای بدونی یه مقدار هست و هم اینکه جای دقیقش کجاست. اگه مقدار پیدا نشه، مقدار false رو برمی گردونه.
$users = ['Ali', 'Reza', 'Sara'];
$key = array_search('Reza', $users);
if ($key !== false) {
echo "کلید 'Reza' برابر است با: " . $key;
}
تو این مثال، خروجی عدد ۱ رو نشون میده.
جمع بندی و مقایسه
حالا که با هر سه تاشون آشنا شدی، بیا یه جدول ببینیم که تفاوت هاشون رو واضح تر نشون میده. با دیدن این جدول، دیگه گیج نمی شی و می دونی کدوم تابع برای کدوم کار مناسبه.
| تابع | کاربرد | بازگشتی (در صورت موفقیت) | بازگشتی (در صورت عدم موفقیت) |
|---|---|---|---|
| array_key_exists | بررسی وجود کلید | true | false |
| in_array | بررسی وجود مقدار | true | false |
| array_search | یافتن کلید بر اساس مقدار | کلید مقدار پیدا شده | false |
PHP و دنیای آرایه ها
استفاده درست از این توابع می تونه کلی از باگ ها و سردرگمی ها رو از بین ببره. فرض کن یه آرایه بزرگ از اطلاعات کاربرها داری.
- اگه می خوای بدونی کاربر «شماره ۱۰» وجود داره یا نه، از array_key_exists استفاده کن.
- اگه می خوای بدونی آیا «تهران» جزو شهرهایی هست که کاربرهات توش زندگی می کنن، از in_array استفاده کن.
- و اگه می خوای بدونی «محسن» تو کدوم خونه از آرایه قرار گرفته، از array_search استفاده کن.
تو این آزمونی که قراره شرکت کنی، با سوالاتی روبرو میشی که مهارت تو رو در تشخیص این تفاوت ها و استفاده صحیح از این توابع می سنجه. با تمرین و دقت، می تونی به راحتی از پسش بربیای.
به نظر من، این مبحث مثل یه بازیه. اگه قوانین رو بلد باشی، برنده میشی. امیدوارم این متن بهت کمک کرده باشه که قوانین رو بهتر یاد بگیری.