آرایه های PHP – به زبان ساده


در این مقاله به بررسی مفاهیم مقدماتی آرایهها در PHP میپردازیم. در این نوشته با شیوه ایجاد آرایه و طرز استفاده از آرایههای انجمنی (associative) و چندبعدی آشنا میشوید. همچنین مثالهای عملی زیادی در خصوص آرایههای PHP ارائه شده است.
آرایه چیست؟
در زبان برنامهنویسی PHP منظور از آرایه، ساختمان دادهای است که امکان ذخیرهسازی عناصر چندگانه در یک متغیر منفرد را ارائه میکند.
این عناصر به صورت جفتهای کلید-مقدار ذخیره میشوند. در واقع شما میتوانید هر کجا که لازم بود فهرستی از عناصر را ذخیره کنید، از آرایه بهره بگیرید. به طور معمول همه آیتمها در یک آرایه از نوع داده یکسانی هستند. برای نمونه فرض کنید میخواهید نام چند میوه را ذخیره کنید. بدون وجود آرایه میبایست چند متغیر مستقل برای ذخیره نام میوههای مختلف ایجاد کنید. در سوی دیگر اگر از آرایه برای ذخیره نامهای میوهها استفاده کنید، چیزی شبیه زیر به دست میآورید:
<?php $array_fruits = array('Apple', 'Orange', 'Watermelon', 'Mango'); ?>
همان طور که میبینید، ما از متغیر array_fruits$ برای ذخیرهسازی نام میوههای مختلف استفاده کردهایم. نکته مهمی که در مورد این رویکرد وجود دارد، این است که میتوانید عناصر بیشتری را به متغیر آرایهای array_fruits$ در آینده اضافه کنید. روشهای مختلف زیادی برای دستکاری مقادیر در متغیرهای آرایهای وجود دارند و در ادامه برخی از آنها را معرفی میکنیم.
شیوه مقداردهی اولیه آرایه
در این بخش شیوه مقداردهی اولیه یک متغیر آرایهای و افزودن مقادیر به این متغیر را بررسی میکنیم. زمانی که میخواهیم آرایهای را مقداردهی اولیه کنیم، چند روش مختلف برای این منظور وجود دارد. در اغلب موارد این سازه ()array در زبان برنامهنویسی است که برای مقداردهی اولیه یک آرایه استفاده میشود.
<?php $array = array(); ?>
در قطعه کد فوق متغیر array$ با یک آرایه خالی مقداردهی اولیه میشود. از نسخه 5.4 PHP به بعد شما میتوانید از ساختار زیر برای مقداردهی اولیه PHP استفاده کنید:
<?php $array = []; ?>
اینک ببینیم چگونه میتوانیم عناصری را به یک آرایه اضافه کنیم:
<?php $array = []; $array[] = 'One'; $array[] = 'Two'; $array[] = 'Three'; echo '<pre>'; print_r($array); ?>
قطعه کد فوق خروجی زیر را تولید میکند:
Array ( [0] => One [1] => Two [2] => Three )
نکته مهمی که باید اشاره کرد این است که اندیس آرایه از 0 شروع میشود. هر زمان که عنصر جدیدی بدون مشخص ساختن اندیس، به یک آرایه اضافه شود، آرایه آن را به طور خودکار به اولین اندیس خالی انتساب میدهد.
البته شما میتوانید آرایهای از مقادیر قبلاً مقداردهی شده ایجاد کنید. این وضعیت خلاصهترین روش برای ایجاد آرایههایی است که مقادیر آنها از قبل مشخص است.
<?php $array = ['One', 'Two', 'Three']; ?>
دسترسی به عناصر آرایه
در بخش قبل در مورد طرز مقداردهی اولیه یک متغیر آرایهای صحبت کردیم. در این بخش روشهای مختلف دسترسی به عناصر آرایهای را بررسی میکنیم. اولین روش بدیهی برای دسترسی به عناصر آرایه، واکشی آنها از طریق کلید یا اندیس آرایه است:
<?php $array = ['One', 'Two', 'Three']; // get the first element of the $array array echo $array[0]; echo "<br>"; // get the second element of the $array array echo $array[1]; echo "<br>"; // get the third element of the $array array echo $array[2]; echo "<br>"; ?>
کد فوق خروجی زیر را تولید میکند:
One Two Three
یک روش تمیزتر برای نوشتن کد فوق استفاده از حلقه foreach برای تکرار و افزودن عناصر آرایه است:
<?php $array = ['One', 'Two', 'Three']; foreach ($array as $element) { echo $element; echo '<br>'; } ?>
کد فوق همین خروجی را تولید میکند و به کد بسیار کمتری هم نیاز دارد. به طور مشابه میتوانید از حلقه for برای تعریف حلقهای روی عناصر آرایه استفاده کنید:
<?php $array = ['One', 'Two', 'Three']; $array_length = count($array); for ($i = 0; $i < $array_length; ++$i) { echo $array[$i]; echo '<br>'; } ?>
در این روش حلقه for برای دسترسی به همه اندیسهای آرایه و سپس خروجی دادن مقادیر ذخیره شده در آن اندیس استفاده میشود. در این کد یکی از مهمترین تابعهایی که هنگام کار با آرایهها مورد استفاده قرار میگیرد را معرفی کردهایم. این تابع count نام دارد. از این تابع برای شمارش تعداد عناصر یک آرایه استفاده میشود.
انواع آرایه در PHP
در این بخش انواع مختلف آرایهای که میتوانید در PHP مورد استفاده قرار دهید را بررسی کردهایم.
آرایههای با اندیس عددی
یک آرایه با اندیس عددی در دسته آرایههای اندیسدار قرار میگیرد. در واقعه نمونههایی که تا به اینجا در این مقاله بررسی کردیم، همگی آرایههای اندیسدار بودند.
اندیس عددی به طور خودکار هنگامی که اندیسی را صراحتاً تعیین نکرده باشید، به مقادیر آرایه انتساب مییابد.
<?php $array = ['One', 'Two', 'Three']; ?>
در مثال فوق ما اندیسی برای هر یک از آیتمها ذکر نکردهایم و از این رو آرایه به طور خودکار با اندیسهای عددی مقداردهی اولیه میشود. البته شما میتوانید یک آرایه اندیسدار را با استفاده از اندیسهای عددی به صورت زیر ایجاد کنید:
<?php $array = []; $array[0] = 'One'; $array[1] = 'Two'; $array[2] = 'Three'; ?>
آرایههای انجمنی (Associative)
آرایه انجمنی مشابه آرایه اندیسدار است؛ تنها تفاوت این است که از مقادیر رشتهای برای اندیسهای آرایه استفاده میشود. در کد زیر روش تعریف یک آرایه انجمنی را میبینید:
<?php $employee = [ 'name' => 'John', 'email' => 'john@example.com', 'phone' => '1234567890', ];
به طور جایگزین میتوانید از ساختار زیر نیز استفاده کنید.
<?php $employee = []; $employee['name'] = 'John'; $employee['email'] = 'john@example.com'; $employee['phone'] = '1234567890'; ?>
برای دسترسی به مقادیر یک آرایه انجمنی میتوانید از اندیس یا از حلقه foreach استفاده کنید:
<?php $employee = [ 'name' => 'John', 'email' => 'john@example.com', 'phone' => '1234567890', ]; // get the value of employee name echo $employee['name']; // get all values foreach ($employee as $key => $value) { echo $key . ':' . $value; echo '<br>'; } ?>
همان طور که میبینید در این کد ما از نام برای کوئری زدن مستقیم به آرایه استفاده میکنیم و سپس از حلقه foreach برای دریافت همه جفتهای کلید-مقدار در آرایه استفاده میکنیم.
آرایههای چندبعدی
در مثالهایی که تاکنون بررسی کردیم، از مقادیر اسکالر به عنوان عناصر آرایه استفاده کردیم. در واقع شما حتی میتوانید آرایهها را به صورت عناصری درون آرایههای دیگر ذخیره کنید که این کار به نام آرایههای چندبعدی نامیده میشود. در ادامه مثالی از آن را مشاهده میکنید:
<?php $employee = [ 'name' => 'John', 'email' => 'john@example.com', 'phone' => '1234567890', 'hobbies' => ['Football', 'Tennis'], 'profiles' => ['facebook' => 'johnfb', 'twitter' => 'johntw'] ]; ?>
همان طور که میبینید کلید hobbies (سرگرمیها) در آرایه employee$ یک آرایه از سرگرمیها نگهداری میکند. به همین ترتیب کلید profiles (پروفایلها) یک آرایه انجمنی از مقادیر پروفایل مختلف نگهداری میکند. در کد زیر روش دسترسی به عناصر آرایههای چندبعدی را میبینید:
<?php $employee = [ 'name' => 'John', 'email' => 'john@example.com', 'phone' => '1234567890', 'hobbies' => ['Football', 'Tennis'], 'profiles' => ['facebook' => 'johnfb', 'twitter' => 'johntw'] ]; // access hobbies echo $employee['hobbies'][0]; // Football echo $employee['hobbies'][1]; // Tennis // access profiles echo $employee['profiles']['facebook']; // johnfb echo $employee['profiles']['twitter']; // johntw ?>
همان طور که میبینید عناصر یک آرایه چندبعدی میتوانند با اندیس یا کلیدی که عنصر در هر بخش آرایه دارد مورد دسترسی قرار گیرند.
برخی تابعهای مفید در آرایه
در این بخش چند مورد از تابعهایی که هنگام با آرایههای مفید هستند و به طور مکرر در عملیاتهای آرایهای مورد استفاده قرار میگیرند را معرفی میکنیم.
تابع count
تابع count برای شمارش تعداد عناصر موجود در یک آرایه استفاده میشود. این وضعیت در اغلب مواردی که میخواهید حلقهای به صورت for روی یک آرایه تعریف کنید مورد نیاز است.
<?php $array = ['One', 'Two', 'Three']; // print the number of elements in the array echo count($array); // the above code should output 3 ?>
تابع is_array
این تابع یکی از مفیدترین تابعها هنگام کار با آرایهها محسوب میشود. از این تابع برای بررسی این که یک متغیر آرایه یا نوع دیگری از داده است، استفاده میشود.
<?php $array = ['One', 'Two', 'Three']; // check if the variable is an array if (is_array($array)) { // perform some array operation } ?>
اگر در مورد آرایه بودن یک نوع داده شک دارید، باید همیشه قبل از اجرای هر گونه عملیات آرایهای از این تابع استفاده کنید.
تابع in_array
اگر بخواهید بررسی کنید که عنصری در یک آرایه وجود دارد یا نه، تنها راهکار استفاده از تابع in_array است.
<?php $array = ['One', 'Two', 'Three']; // check if a variable is an array if (in_array('One', $array)) { echo 'Yes'; } else { echo 'No'; } ?>
آرگومان نخست تابع in_array عنصری است که میخواهید بررسی کنید و آرگومان دوم خود آرایه است.
تابع explode تابع explode یک رشته را به بخشهای چندگانهای افراز میکند و آن را به صورت یک آرایه باز میگرداند. برای نمونه فرض کنید میخواهید یک رشته جدا شده با کاما را از محلهای کاما به عناصر یک آرایه افراز کنید.
<?php $string = "One,Two,Three"; // explode a string by comma $array = explode(",", $string); // output should be an array echo '<pre>'; print_r($array); // output /*Array ( [0] => One [1] => Two [2] => Three )*/ ?>
آرگومان نخست تابع explode رشته جداکننده (در این مثال کاراکتر کاما) و آرگومان دوم خود رشته است.
تابع implode
این تابع عکس کاری که تابع قبلی انجام میداد را اجرا میکند. با فرض وجود یک آرایه و یک رشته چسباننده، تابع implode میتواند رشتهای ایجاد کند که در آن عناصر آرایه با آن کاراکتر چسباننده به هم چسبیده و یک رشته منفرد را تشکیل میدهند.
<?php $array = ['One', 'Two', 'Three']; $string = implode(",", $array); // output should be a string echo $string; // output: One,Two,Three ?>
آرگومان اول تابع implode رشته چسباننده و آرگومان دوم خود آرایهای است که قرار است ترکیب شود.
تابع array_push
تابع array_push برای افزودن عناصر جدید به انتهای یک آرایه استفاده میشود.
<?php $array = ['One', 'Two', 'Three']; array_push($array, 'Four'); echo '<pre>'; print_r($array); // output /*Array ( [0] => One [1] => Two [2] => Three [3] => Four )*/ ?>
آرگومان اول یک آرایه است و آرگومانهای بعدی عناصری هستند که قرار است به انتهای آرایه اضافه شوند.
تابع array_pop
تابع array_pop یک عنصر را از انتهای یک آرایه حذف میکند.
<?php $array = ['One', 'Two', 'Three']; $element = array_pop($array); echo '<pre>'; print_r($array); // output /*Array ( [0] => One [1] => Two )*/ ?>
تابع array_pop عنصری که از آرایه حذف شده است را باز میگرداند و از این رو میتوانید آن را در متغیری وارد کنید. این تابع همراه با تابع array_push برای پیادهسازی ساختمانهای دادهای مانند پشته مفید خواهد بود.
سخن پایانی
در این نوشته تلاش کردیم همه مواردی که برای کدنویسی آرایهها در PHP مورد نیاز است را گردآوری کنیم. شما در این مقاله با روش ایجاد آرایه و طرز کار بازیابی عناصر آن آشنا شدید. شما انواع مختلف آرایههای PHP را شناختید و برخی از تابعهای مفید کار با آرایه را مشاهده کردید.
اگر این مطلب برایتان مفید بوده است، آموزشهای زیر نیز به شما پیشنهاد میشوند:
- مجموعه آموزشهای طراحی و برنامه نویسی وب
- آموزش آرایه در ساختمان داده
- مجموعه آموزش های PHP
- آموزش آرایه های دو بعدی – ماتریس ها
- معرفی مبانی ساختار داده و آرایه های داده ای — به زبان ساده
- آموزش معرفی و تعریف آرایه ها در تکمیلی پایتون
- آموزش کامل MVC در PHP — از صفر تا صد و به زبان ساده
==
به نام خدا
خیلی عالی بود هم محتوا و هم سادگی گفتار آرزوی سلامتی و موفقیت برای شما دارم
مفید و کاربردی بود. ممنونم