تابع in_array در php

  • آپدیت شده در تاریخ

تابع in_array در php

آرایه ها در php , یکی از موضوعات جالب در PHP است . در این آموزش , ما یکی از توابع کار با آرایه به نام تابع in_array در php را ابا جزییات بررسی خواهیم کرد .

 

در php , تابع in_array() برای بررسی اینکه آیای یک مقدار یا یک زیرمجموعه از آرایه جزیی از آرایه مشخص است یا خیر. اگر مقدار یا آرایه پاس داده شده در آرایه اصلی وجود داشت, تابع in_array مقدار TRUE را برگشت میدهد در غیر ایصورت FALSE‌ را خواهیم داشت

تابع in_array در php

سینتکس و پارامتر های تابع in_array در php

Syntax (سینتکس) زیر به شما نحوه استفاده از تابع in_array در یک اسکریپت php را نشان میدهد . این تابع شامل ۳ پارامتر است که سومین مقدار به صورت اختیاری است

پارامترهای تابع in_array() در php

  • $data_to_search می تواند یک رشته , عدد و یا آرایه باشد . قبل از PHP v4.2.0 مقدار آرایه برای اولین پارامتر مجاز نبود .
  • $master_array یک آرایه ای که به عنوان منبع جستجوی ما است را می پذیرد
  • $strict_search_flag این پارامتر اختیاری یک مقدار بولین (boolean) را خواهد داشت . اگر TRUE باشد , تابع in_array جستجو را بر اساس مقایسه نوع داده انجام خواهد داد .

نکته :

  • قرار دادن پارامتر سوم بصورت TRUE بسیار مطمین تر است . چراکه اگر آرایه مشخص شده دارای ۰ باشد , TRUE/false یا NULL به عنوان ورودی شناخته خواهد شد و تابع in_array یک نتیجه نامشخص را برگشت می دهد . برای مثال ,

کد php بالا مقدار true را برگشت می دهد , حتی اگر آن مقدار در آرایه اصلی وجود نداشته باشد . بنابراین مشخص کردن مقایسه دقیق (strict maching) این مشکل را حل می کند .

  • در هنگام استفاده از این تابع , مقایسه رشته ها بصورت حساس به کوچک و بزرگ خواهد بود .

توابع دیگر برای جستجو در آرایه ها

PHP شامل توابع دیگری نیز برای جستجو برای یک کلمه کلیدی خاص یا یک رشته در آرایه است که این توابع بصورت زیر است

  1. Array_key_exists()
  2. Array_search()

تابع array_key_exists() برای جستجو کلید (key)

همانطور که دیدید که تابع in_array در php در صورتی که مقداری را در آرایه اصلی پیدا کرد , TRUE مشخص می کند .مشابه آن , array_key_existis() همان جستجو را برای کلید (key) یا ایندکس را انجام می دهد .

کد php زیر مثالی از تابع array_key_exists() را نشان می دهد :

در اسکریپت بالا , array_key_exists مقدار TRUE را برگشت می دهد .

تابع array_search در PHP

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

مثال :

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

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

حسن شفیعی توسعه دهنده وب و موبایل مدیر سایت علاقه خاصی به برنامه نویسی وب و موبایل دارم و هر روز تلاش می کنم به این حوزه مسلط تر شوم و اطلاعاتم را به شکل کاربردی برای علاقه مندان در وب به اشتراک بگذارم. اگر نیاز به برنامه نویس برای انجام پروژه و نوشتن اسکریپت های سمت وب, اپلیکیشن های اندروید و ios, پیدا کردن راه حل توسعه و غیره داشتید حتما از طریق تماس با ما/ واتساپ/ تلگرام بهم پیام بدید. برایتهیه هاست مطمین و پرسرعت کلیک کنید
مطالب زیر را حتما بخوانید
دیدگاه کاربران (۷)

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

  1. Mahla ۱۴ دی ۱۴۰۰

    سلام من می‌خوام نه تا عکس بدم با حلقه فور که در خروجی هر نه تا عکس جا به جا بشه الان نمیدونم از in_arrayچحوری مقدار بدم که هر ۹تا عکس رو اجرا کنه

    پاسخ
    1. حسن شفیعی ۱۴ دی ۱۴۰۰

      سلام. کافیه هر ۹ تا عکس رو داخل یک آرایه قرار بدید و بعد با حلقه foreach اجرا کنید

      پاسخ
  2. علی گنجی ۲۰ اسفند ۱۳۹۷

    سلام
    خیلی ممنون عالی بود
    تشکر فراوان

    پاسخ
  3. علی گنجی ۱۸ اسفند ۱۳۹۷

    سلام ببخشید کد شما کار نکرد
    این ارایه من هست
    $array = $array(‘apple_23’ , ‘aapple’ , ‘orange’ , ’13apple’);
    من میخوام برنامه ای باشه و بگه که از اون ارایه بالا گزینه ۱ و ۲ و ۴ داخلشون کلمه apple به کار رفته جدا از اون حروف و اعداد اضافه داخل هر رشته.
    ممنون میشم کمکم کنید

    پاسخ
    1. حسن شفیعی ۱۹ اسفند ۱۳۹۷

      سلام. کدی که بالا ارایه شد برای پیدا کردن دقیق همان کلمه در آرایه است و برای اینکه مثلا کلمه apple با apple_23 مچ بشه باید از ترکیب regex و foreach یک تابع بسازید تا کار بصورت دستی انجام بشه
      خدمت شما تابع مورد نظر نوشته شده که کافیه تو پارامتر آرایه و همچنین کلمه مورد نظر خود را به آن بدید تا ایندکس موارد مچ شده را خدمت شما برگشت بده

      کد کلی بصورت زیر است (باید تابع findKey را echo کنید تا مقدار return شده در خروجی مرورگر نمایش داده بشه)

      خروجی اجرای کد و تابع بالا ۰,۱,۳ است که درست همان ایندکس های apple_23, aapple, 13apple را در آرایه بالا به شما نمایش میده.

      موفق باشید.

      پاسخ
  4. علی گنجی ۱۶ اسفند ۱۳۹۷

    سلام و با تشکر
    من میخوام از یک ارایه یک مقدار رو خارج کنم و شماره ارایه رو برای من چاپ کنه
    به طور مثال من میخواهم از یک ارایه ۳ عضوی که اعضای ان css , phpcake , 12_php
    هستتند بیاید و انهایی که درونشان کلمه php به کار رفته را جدا کند و اعدادشان را به من نشاند دهد و مثلا بگوید که شماره ۲ و ۳ دورنشان کلمه php به کار رفته است.
    اگر میتوانید مرا راهنمایی کنید

    نمونه
    نمایش شماره حروف apple
    ورودی
    ۱۱_apple
    apple34
    orange

    خروجی
    ۱,۲

    اینگونه باشد

    پاسخ
    1. حسن شفیعی ۱۶ اسفند ۱۳۹۷

      سلام
      میتونید از ترکیب array_search برای جستجو و array_key برای دریافت ایندکس خانه های یافت شده استفاده کنید.
      خروجی استفاده از این توابع بصورت آرایه ای از نتایج بصورت عدد که شماره خانه ها است بگشت داده می شود برای همین از var_dump استفاده شده است.

      var_dump(array_search(‘apple’, array_keys($array)));

      البته میتویند بدون استفاده از این توابع پیش ساخته در php از یک حلقه foreach و بررسی موردی این مفادیر استفاده کنید که در نهایت آن را به عنوان یک تایع دربیارید که به هر حال روش بالا که معرفی شد نیز کارساز است.

      موفق باشید.

      پاسخ
دوره های آموزشی