Advertisement
  1. Code
  2. PHP

آرایه‌ها در پی‌اچ‌پی

Scroll to top
Read Time: 10 min

() translation by (you can also view the original English article)

در این پست، شما مفاهیم پایه‌ایی آرایه‌ها در پی‌اچ‌پی را فرا خواهید گرفت. یاد خواهید گرفت که چگونه آرایه بسازید،‌و چگونه از آرایه‌های انجمنی (associative) و چند بُعدی استفاده کنید و تعداد زیادی از مثال‌های عملی کار با آرایه‌ها را خواهید دید.

آرایه چیست؟

در پی‌اچ‌پی، یک آرایه یک ساختمان داده است که به شما این امکان را می‌دهد چندین المنت را در یک متغییر ذخیره کنید.این المنت‌ها به صورت جفت key-value یا کلید-مقدار ذخیره می‌شوند. در حقیقت، هر زمان شما احساس کنید که نیاز دارید لیستی از المنت‌ها را ذخیره کنید، اینجاست که می‌توانید از آرایه‌ها استفاده کنید. بیشتر اوقات، نوع آیتم‌های موجود در یک آرایه یکسان می‌باشد.

به عنوان مثال، در نظر بگیرید که می‌خواهید لیستی از اسم‌ میوه‌ها ذخیره کنید. بدون آرایه، شما می‌بایست متغییرهای متعددی برای هر کدام از اسامی میوه‌ها می‌ساختید. از طرفی دیگر، اگر شما از آرایه برای ذخیره اسم میوه‌ها استفاده کنید، چیزی شبیه این خواهیم داشت:

1
<?php
2
$array_fruits = array('Apple', 'Orange', 'Watermelon', 'Mango');
3
?>

همانطور که می‌بینید ما از متغییر $array_fruits جهت ذخیره نام‌های مختلف میوه استفاده کرده‌ایم. یک ویژگی خوب این روش این هست که می‌توانید در صورت نیاز بعداً به آرایه $array_fruits المنت‌های بیشتری اضافه کنید.

روش‌های مختلفی برای تغییر مقادیر در یک آرایه وجود دارد، ما این روش‌های را در ادامه این مقاله بررسی خواهیم کرد.

چگونه یک آرایه را مقداردهی اولیه کنیم

در این بخش، به مقداردهی اولیه آرایه و اضافه کردن مقادیر به متغییر آرایه می‌پردازیم.

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

1
<?php
2
$array = array();
3
?>

در قطعه کد بالا، متغییر $array با یک آرایه خالی مقداردهی اولیه شده است.

همچنین می‌توانید از دستور زیر که از پی‌اچ‌پی ۵.۴ به بعد ارائه شد برای ساخت آرایه استفاد کنید.

1
<?php
2
$array = [];
3
?>

حالا ببینیم چگونه می‌توان المنت‌هایی را به آرایه اضافه کرد.

1
<?php
2
$array = [];
3
$array[] = 'One';
4
$array[] = 'Two';
5
$array[] = 'Three';
6
echo '<pre>';
7
print_r($array);
8
?>

قطعه کد بالا نتایج زیر را تولید می‌کند.

1
Array
2
(
3
    [0] => One
4
    [1] => Two
5
    [2] => Three
6
)

نکته حائز اهمیت این است که اندیس‌های یک آرایه از صفر شروع می‌شود. زمانی که یک المنت جدید را به آرایه اضافه می‌کنید، اگراندیس آن را مشخص نکنید،‌ آرایه به صورت خودکار یک اندیس به آن المنت اختصاص می‌دهد.

شما همچنین می‌توانید در همان زمان ساخت آرایه، مقادر مورد نیاز را هم به آرایه اضافه کنید. در‌واقع اگر در زمان ساخت آرایه از مقادیر درون آن اطلاع دارید این بهترین روش ساخت آرایه است.

1
<?php
2
$array = ['One', 'Two', 'Three'];
3
?>

چگونه به المنت‌‌های درون آرایه دسترسی پیدا کنیم

در بخش قبل گفتیم که چطور یک آرایه را بسازید و مقدار دهی اولیه کنید. در این بخش، به بررسی روش‌های مختلف دسترسی به المنت‌های آرایه می‌پردازیم.

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

1
<?php
2
$array = ['One', 'Two', 'Three'];
3
4
// get the first element of the $array array

5
echo $array[0];
6
echo "<br>";
7
8
// get the second element of the $array array

9
echo $array[1];
10
echo "<br>";
11
12
// get the third element of the $array array

13
echo $array[2];
14
echo "<br>";
15
?>

قطعه کد بالا نتایج زیر را تولید خواهد کرد.

1
One
2
Two
3
Three

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

1
<?php
2
$array = ['One', 'Two', 'Three'];
3
4
foreach ($array as $element) {
5
  echo $element;
6
  echo '<br>';
7
}
8
?>

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

همچنین می‌توانید از حلقه‌ی for نیز برای پیمایش المنت‌های آرایه استفاده کنید.

1
<?php
2
$array = ['One', 'Two', 'Three'];
3
$array_length = count($array);
4
5
for ($i = 0; $i < $array_length; ++$i) {
6
  echo $array[$i];
7
  echo '<br>';
8
}
9
?>

در اینجا ما از حلقه for برای پیمایش اندیس‌های موجود در آرایه استفاده کردیم و سپس مقدار ذخیره شده در آن اندیس را چاپ کردیم. در این قطعه کد، از یکی از مهترین تابع‌هایی که در زمینه آرایه‌ها بسیار به کارتان خواهد آمد استفاده کردیم. تابع count. از این تابع برای شمارش تعداد المنت‌های موجود در آرایه استفاده می‌شود.

انواع آرایه‌ها در پی‌اچ‌پی

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

آرایه‌های دارای اندیس عددی

آرایه‌ی دارای اندیس عددی در دسته آرایه‌های دارای اندیس قرار می‌گیرید. در حقیقت،‌ مثال‌های که تا اینجا بررسی کردیم همه از نوع آرایه‌های اندیس دار بودند.

اگر مقدار اندیس عددی را به صورت صریح مشخص نکنید، مقداری عددی برای این اندیس به صورت خودکار تعیین می‌شود.

1
<?php
2
$array = ['One', 'Two', 'Three'];
3
?>

در مثال بالا، ما اندیس هر آیتم را به صورت صریح و واضح مشخص نکردیم، بنابراین به صورت خودکار به اندیس‌های عددی مقدار دهی می‌شوند.

و قطعاً می‌توانید با استفاده از اندیس‌های عددی، خودتان آرایه‌ی اندیس دار بسازید، همانطور که در مثال پایین نشان داده شده است.

1
<?php
2
$array = [];
3
$array[0] = 'One';
4
$array[1] = 'Two';
5
$array[2] = 'Three';
6
?>

آرایه‌های انجمنی

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

در مثال پایین می‌بینیم که چگونه یک آرایه انجمنی تعریف می‌شود.

1
<?php
2
$employee = [
3
  'name' => 'John',
4
  'email' => 'john@example.com',
5
  'phone' => '1234567890',
6
];

می‌توانید از ساختار زیر نیز استفاده کنید.

1
<?php
2
$employee = [];
3
$employee['name'] = 'John';
4
$employee['email'] = 'john@example.com';
5
$employee['phone'] = '1234567890';
6
?>

برای دسترسی به مقدار یک آرایه انجمنی، می‌تواند از اندیس یا از حلقه‌ی foreach استفاده کنید.

1
<?php
2
$employee = [
3
  'name' => 'John',
4
  'email' => 'john@example.com',
5
  'phone' => '1234567890',
6
];
7
8
// get the value of employee name

9
echo $employee['name'];
10
11
// get all values

12
foreach ($employee as $key => $value) {
13
  echo $key . ':' . $value;
14
  echo '<br>';
15
}
16
?>

همانطور که می‌بینید، در اینجا ما مقدار نام را به صورت مستقیم استعلام کرده‌ایم، و سپس از حلقه‌ ی foreach برای دسترسی به تمام جفت‌های کلید-مقدار درون آرایه استفاده کردیم.

آرایه‌های چند بعدی

در مثال‌هایی که تا به اینجا بررسی کردیم، از داده‌های اسکالر به عنوان المنت‌های آرایه استفاده کردیم. در حقیقت، شما حتی می‌توانید آرایه‌ها را به عنوان المنت آرایه‌‌های دیگر نیز ذخیره کنید، به این نوع آرایه‌ها، آرایه‌های چندبعدی گفته می‌شود.

مثال زیر را با هم بررسی می‌کنیم.

1
<?php
2
$employee = [
3
  'name' => 'John',
4
  'email' => 'john@example.com',
5
  'phone' => '1234567890',
6
  'hobbies' => ['Football', 'Tennis'],
7
  'profiles' => ['facebook' => 'johnfb', 'twitter' => 'johntw']
8
];
9
?>

همانطور که مشاهده می‌کنید، کلید hobbies در آرایه $employee ، آرایه‌ای از تفریحات را ذخیره می‌کند. به همین روش، کلید profiles آرایه‌ای انجمنی از اطلاعات پروفایل‌ کاربر را ذخیره کرده است.

خب، حالا بررسی کنیم که چگونه می‌تواند به مقادیر آرایه چندبعدی دسترسی پیدا کنیم.

1
<?php
2
$employee = [
3
  'name' => 'John',
4
  'email' => 'john@example.com',
5
  'phone' => '1234567890',
6
  'hobbies' => ['Football', 'Tennis'],
7
  'profiles' => ['facebook' => 'johnfb', 'twitter' => 'johntw']
8
];
9
10
// access hobbies

11
echo $employee['hobbies'][0];
12
// Football

13
14
echo $employee['hobbies'][1];
15
// Tennis

16
17
// access profiles

18
echo $employee['profiles']['facebook'];
19
// johnfb

20
21
echo $employee['profiles']['twitter'];
22
// johntw

23
?>

همانطور که می‌بینید، المنت‌های آرایه‌های چند بعدی، توسط اندیس یا کلید آن المنت در هرکدام از آرایه‌ها به دست می‌آید.

تابع‌های مفید قابل استفاده در آرایه‌ها

در این بخش، به بررسی تعدادی از توابع کاربردی در آرایه‌ها می‌پردازیم که عموما برای کار با آرایه‌ها به آن‌ها نیاز دارید.

تابع count

از تابع count برای شمارش تعداد المنت‌های درون آرایه استفاده می‌شود. این تابع زمانی که می‌خواهید یک آرایه را با حلقه‌های for پیمایش کنید مورد استفاده قرار می‌گیرد.

1
<?php
2
$array = ['One', 'Two', 'Three'];
3
4
// print the number of elements in the array

5
echo count($array);
6
7
// the above code should output

8
3
9
?>

تابع is_array

این تابع، یکی از کاربردی‌ترین توابع در زمان کار با آرایه‌ها در پی‌اچ‌پی است. این تابع بررسی می‌کند که آیا نوع یک متغییر از نوع آرایه‌ست یا خیر.

1
<?php
2
$array = ['One', 'Two', 'Three'];
3
4
// check if the variable is an array

5
if (is_array($array))
6
{
7
  // perform some array operation

8
}
9
?>

هرزمان که از نوع داده مطمئن نبود که آیا داده از نوع آرایه است یا خیر، از این تابع قبل از اینکه هر عملیاتی روی آرایه انجام دهید، استفاده کنید.

تابع in_array

اگر میخواهید چک کنید که آیا المنت مورد نظر شما در آرایه وجود دارد یا خیر، اینجا تابع in_array هست که به کمک شما خواهد آمد.

1
<?php
2
$array = ['One', 'Two', 'Three'];
3
4
// check if a variable is an array

5
if (in_array('One', $array))
6
{
7
  echo 'Yes';
8
}
9
else
10
{
11
  echo 'No';
12
}
13
?>

آرگومان اول در تابع in_array همان المنت‌ مد نظر شماست که می‌خواهید ببینید در آرایه وجود دارد یا خیر و آرگومان دوم شامل خود آرایه است

تابع explode

تابع explode یک رشته را به چندین قسمت تقسیم می‌کند و آن را به صورت آرایه بر می‌گرداند. به عنوان مثال، فرض کنید که رشته‌ای دارید که در آن عبارت‌ها توسط کاما از یکدیگر جدا شده‌اند و قصد دارید که این رشته را مناسب با آن کاما‌ها تقسیم کنید.

1
<?php
2
$string = "One,Two,Three";
3
4
// explode a string by comma

5
$array = explode(",", $string);
6
7
// output should be an array

8
echo '<pre>';
9
print_r($array);
10
11
// output

12
/*Array

13
(

14
    [0] => One

15
    [1] => Two

16
    [2] => Three

17
)*/
18
?>

آرگومان اول تابع explode رشته جدا کننده است (همان مکان‌های تقسیم، که در اینجا کاما مد نظر است) و آرگومان دوم خود آرایه است.

تابع implode

این تابع برعکس تابع explode عمل می‌کند. با دادن یک رشته‌ی چسب (glue) و آرایه مورد نظر، تابع  implode رشته‌ای را با پیوستن تمام عناصر آرایه با رشته چسب بین آن‌ها تولید می‌کند.

1
<?php
2
$array = ['One', 'Two', 'Three'];
3
4
$string = implode(",", $array);
5
6
// output should be a string

7
echo $string;
8
9
// output: One,Two,Three

10
?>

آرگومان اول تابع implode رشته چسب مورد مورد نظر است و آرگومان دوم همان آرایه جهت تبدیل کردن به رشته ست.

تابع array_push

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

1
<?php
2
$array = ['One', 'Two', 'Three'];
3
array_push($array, 'Four');
4
5
echo '<pre>';
6
print_r($array);
7
8
// output

9
/*Array

10
(

11
    [0] => One

12
    [1] => Two

13
    [2] => Three

14
    [3] => Four

15
)*/
16
?>

آرگومان اول، آرایه است، و آرگومان‌های پس از آن، همان المنت‌هایی هستند که می‌خواهید به انتهای آرایه اضافه کنید.

تابع array_pop

تابع array_pop یک المنت را از آخر آرایه حذف می‌کند.

1
<?php
2
$array = ['One', 'Two', 'Three'];
3
$element = array_pop($array);
4
5
echo '<pre>';
6
print_r($array);
7
8
// output

9
/*Array

10
(

11
    [0] => One

12
    [1] => Two

13
)*/
14
?>

تابع array_pop المنت حذف شده از انتهای آرایه را می‌گرداند، بنابراین می‌توانید آن را در متغییری ذخیره کنید. این تابع در کنار تابع array_push برای ساخت ساختمان داده‌هایی مانند پشته‌ها مورد استفاده قرار می‌گیرد.

نتیجه‌گیری

تمامی چیزی که نیاز دارید تا بتوانید از آرایه‌ها در پی‌اچ‌پی استفاده کنید در این مقاله ارائه شد. شما دیدید که چگونه می‌توان آرایه‌ها را ساخت و به داده‌های درون آن‌ها دسترسی پیدا کرد. همچنین انواع آرایه‌های مختلف در پی‌اچ‌پی را مشاهده کردید و در آخر نگاهی داشتیم به تعدادی از تابع‌های بسیار کاربردی درون پی‌اچ‌پی که برای کار با آرایه‌های مورد استفاده قرار می‌گیرند.

Advertisement
Did you find this post useful?
Want a weekly email summary?
Subscribe below and we’ll send you a weekly email summary of all new Code tutorials. Never miss out on learning about the next big thing.
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.