آرایه ها در php , یکی از موضوعات جالب در PHP است . در این آموزش , ما یکی از توابع کار با آرایه به نام تابع in_array در php را ابا جزییات بررسی خواهیم کرد .
در php , تابع in_array() برای بررسی اینکه آیای یک مقدار یا یک زیرمجموعه از آرایه جزیی از آرایه مشخص است یا خیر. اگر مقدار یا آرایه پاس داده شده در آرایه اصلی وجود داشت, تابع in_array مقدار TRUE را برگشت میدهد در غیر ایصورت FALSE را خواهیم داشت
سینتکس و پارامتر های تابع in_array در php
Syntax (سینتکس) زیر به شما نحوه استفاده از تابع in_array در یک اسکریپت php را نشان میدهد . این تابع شامل ۳ پارامتر است که سومین مقدار به صورت اختیاری است
1 |
in_array($data_to_search,$master_array,$strict_search_flag) |
پارامترهای تابع 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 یک نتیجه نامشخص را برگشت می دهد . برای مثال ,
1 |
echo in_array('3', array(true,"one","two","three")); |
کد php بالا مقدار true را برگشت می دهد , حتی اگر آن مقدار در آرایه اصلی وجود نداشته باشد . بنابراین مشخص کردن مقایسه دقیق (strict maching) این مشکل را حل می کند .
- در هنگام استفاده از این تابع , مقایسه رشته ها بصورت حساس به کوچک و بزرگ خواهد بود .
توابع دیگر برای جستجو در آرایه ها
PHP شامل توابع دیگری نیز برای جستجو برای یک کلمه کلیدی خاص یا یک رشته در آرایه است که این توابع بصورت زیر است
Array_key_exists()
Array_search()
تابع array_key_exists() برای جستجو کلید (key)
همانطور که دیدید که تابع in_array در php در صورتی که مقداری را در آرایه اصلی پیدا کرد , TRUE مشخص می کند .مشابه آن , array_key_existis() همان جستجو را برای کلید (key) یا ایندکس را انجام می دهد .
کد php زیر مثالی از تابع array_key_exists() را نشان می دهد :
1 2 |
$master_assoc_array = array("id"=>1000,"name"=>"PHP"); echo array_key_exists("name",$master_assoc_array); |
در اسکریپت بالا , array_key_exists
مقدار TRUE
را برگشت می دهد .
تابع array_search در PHP
این تابع مشابه تابع in_array است اما مقدار برگشتی آنها متفاوت است . اگر عملیات جستجو بر اساس مقدار داده شده , موفقیت آمیز بود , در خروجی شماره ایندکس آرایه برگشت داده خواهد شد .
1 2 |
$master_array = array("one","two","three"); echo "Array index of 'three' is " . array_search("three", $master); |
مثال :
1 |
Array index of 'three' is 2 |
هر سوالی داشتید ، از قسمت نظرات ارسال کنید . سریعا ، پاسخگوی سوالات شما هستیم .
موفق و پیروز باشید
سلام من میخوام نه تا عکس بدم با حلقه فور که در خروجی هر نه تا عکس جا به جا بشه الان نمیدونم از in_arrayچحوری مقدار بدم که هر ۹تا عکس رو اجرا کنه
سلام. کافیه هر ۹ تا عکس رو داخل یک آرایه قرار بدید و بعد با حلقه foreach اجرا کنید
سلام
خیلی ممنون عالی بود
تشکر فراوان
سلام ببخشید کد شما کار نکرد
این ارایه من هست
$array = $array(‘apple_23’ , ‘aapple’ , ‘orange’ , ’13apple’);
من میخوام برنامه ای باشه و بگه که از اون ارایه بالا گزینه ۱ و ۲ و ۴ داخلشون کلمه apple به کار رفته جدا از اون حروف و اعداد اضافه داخل هر رشته.
ممنون میشم کمکم کنید
سلام. کدی که بالا ارایه شد برای پیدا کردن دقیق همان کلمه در آرایه است و برای اینکه مثلا کلمه apple با apple_23 مچ بشه باید از ترکیب regex و foreach یک تابع بسازید تا کار بصورت دستی انجام بشه
خدمت شما تابع مورد نظر نوشته شده که کافیه تو پارامتر آرایه و همچنین کلمه مورد نظر خود را به آن بدید تا ایندکس موارد مچ شده را خدمت شما برگشت بده
کد کلی بصورت زیر است (باید تابع findKey را echo کنید تا مقدار return شده در خروجی مرورگر نمایش داده بشه)
خروجی اجرای کد و تابع بالا ۰,۱,۳ است که درست همان ایندکس های apple_23, aapple, 13apple را در آرایه بالا به شما نمایش میده.
موفق باشید.
سلام و با تشکر
من میخوام از یک ارایه یک مقدار رو خارج کنم و شماره ارایه رو برای من چاپ کنه
به طور مثال من میخواهم از یک ارایه ۳ عضوی که اعضای ان css , phpcake , 12_php
هستتند بیاید و انهایی که درونشان کلمه php به کار رفته را جدا کند و اعدادشان را به من نشاند دهد و مثلا بگوید که شماره ۲ و ۳ دورنشان کلمه php به کار رفته است.
اگر میتوانید مرا راهنمایی کنید
نمونه
نمایش شماره حروف apple
ورودی
۱۱_apple
apple34
orange
خروجی
۱,۲
اینگونه باشد
سلام
میتونید از ترکیب array_search برای جستجو و array_key برای دریافت ایندکس خانه های یافت شده استفاده کنید.
خروجی استفاده از این توابع بصورت آرایه ای از نتایج بصورت عدد که شماره خانه ها است بگشت داده می شود برای همین از var_dump استفاده شده است.
var_dump(array_search(‘apple’, array_keys($array)));
البته میتویند بدون استفاده از این توابع پیش ساخته در php از یک حلقه foreach و بررسی موردی این مفادیر استفاده کنید که در نهایت آن را به عنوان یک تایع دربیارید که به هر حال روش بالا که معرفی شد نیز کارساز است.
موفق باشید.