خانه توسعهدهنده تکنولوژی بکاند پی اچ پی آرایه های PHP به زبان ساده
آرایه های PHP به زبان ساده
آرایههای PHP را میتوان ساختمانهای دادهای توصیف کرد که به توسعهدهندگان اجازه میدهند مجموعهای از مقادیر گوناگون را ذخیرهسازی و دستکاری کنند. این آرایهها میتوانند کاربردهای متنوعی داشته باشند، از ذخیرهسازی ورودی کاربر و دسترسی به دایرکتوریهای سیستمی گرفته تا مدیریت نتایج دیتابیس و … . اگر در حال طی کردن مسیر آموزش PHP هستید، در ادامه با کوئرا بلاگ همراه باشید تا ببینیم آرایههای PHP دقیقاً چه هستند و چطور کار میکنند.
فهرست مطالب
Toggleآرایه چیست؟
آرایه (Array) مجموعهای از متغیرهای مختلفی است که درون گروهی منفرد قرار گرفتهاند. به این ترتیب توسعهدهندگان میتوانند دادهها (یا مقادیر) گوناگون را با عنوانی یکتا ذخیره کنند و دیگر نیازی به تعریف کردن متغیرهای جداگانه برای هر عنصر نیست.تابع array() تعداد نامحدودی از مقادیری که با علامت «کاما» (,) از یکدیگر جدا شدهاند را میپذیرد. ضمناً مقدار موجود در آرایه میتواند انواع داده – مثلا اعداد صحیح، رشتهها، داده بولی یا حتی آرایههای دیگر باشد. بهجای این تابع، میتوان از «[]» (براکت) نیز استفاده کرد.
- بیشتر بخوانید: مسیر یادگیری PHP – پیشنیازها، مهارتها و دانستنیها
ساخت آرایه های PHP و دسترسی به آنها
برای ساخت آرایه در PHP از سینتکس (Syntax) زیر استفاده میکنیم:
$array_name = [value1, value2, ...];
برای مثال آرایهای ساده که سه عنصر (عدد) را در بر بگیرد چنین شمایلی دارد:
$num_array = [14, 25, 36];
در چنین آرایهای که «Indexed» (حاوی عدد) نامیده میشود، میتوانیم بسته به جایگاه (یا Index) هر عنصر در آرایه، به آن دسترسی پیدا کنیم. در PHP (و بسیاری از زبانهای دیگر)، آرایهها «Zero-Indexed» هستند، به این معنی که نخستین عنصر در جایگاه صفر قرار میگیرد و نه یک. برای دسترسی یافتن به عنصری خاص براساس ایندکس، خیلی ساده به آن ارجاع میدهیم:
echo $num_array[0];
// Output: 14
در مثال بالا میخواهیم براساس ایندکس (که صفر است) به نخستین عنصر از $num_array
دسترسی پیدا کنیم.
انواع Index در آرایه های PHP
آرایههای PHP میتوانند ایندکسهای مختلف داشته باشند و رایجترین موارد هم آرایههای Indexed و Associative هستند.
آرایههای Indexed
آرایه Indexed از شاخصهای عددی برای دسترسی یافتن به مقادیر و ذخیرهسازی آنها درون یک آرایه استفاده میکند. بهعنوان مثال:
$colors = ['red', 'blue', 'green'];
echo $colors[0];
// Outputs: red
کد بالای یک آرایه Indexed (با علامتگذاری عددی) است که سه عنصر یا رنگ را در بر میگیرد. همانطور که در بالا میبینید، با قرار دادن عدد مربوطه در براکت مربعی میتوانیم به هر عنصر یا رنگ دسترسی پیدا کنیم.
آرایههای Associative
از طرف دیگر نیز آرایههای Associative را داریم که به جای مقادیر عددی، از کلیدها و فهرستها برای ذخیرهسازی داده بهره میگیرند. به کمک این آرایهها، توسعهدهندگان میتوانند کلیدها را تنظیم و دسترسی به مقادیر را برای خود آسان کنند.
به این مثال توجه کنید:
$user_data = ['name' => 'John Doe', 'email' => 'johndoe@example.com', 'age' => 30];
echo $user_data['name'];
// Outputs: John Doe
در کد بالا آرایهای Associative با سه جفت کلید-مقدار داریم. با استفاده از نام هر کلید میشود به داده مورد نظر دسترسی یافت.
سؤالات متداول برنامهنویسان راجع به آرایههای PHP
حالا که با مفاهیم بنیادین آشنا شدهایم، در ادامه به سراغ سؤالات رایجی میرویم که معمولا ذهن توسعهدهندگان وب تازهکار را به خود مشغول میکنند و به آنها پاسخ میدهیم.
چطور عناصر جدید را به آرایه PHP اضافه کنیم؟
برای افزودن عناصر جدید به آرایهای که پیشتر ایجاد شده است، چه Indexed و چه Associative، از تابع array_push() یا علامت «[]» (براکت) کمک میگیریم. با استفاده از array_push() میتوانیم یک یا چند مقدار اضافه را به انتهای آرایه اضافه کنیم.
بهعنوان مثال:
$fruits = ['apple', 'orange'];
array_push($fruits, 'banana', 'grape');
print_r($fruits);
// Output: Array ([0] => apple [1] => orange [2] => banana [3] => grape)
در این کد کوتاه، به کمک array_push() دو عنصر جدید (banana و grape) را به آرایه $fruits اضافه کردهایم.
یک رویکرد دیگر هم میتواند استفاده از علامت براکت و تخصیص دادن مقدار به جایگاهی جدید در آرایه Indexed یا ساختن یک جفت کلید-مقدار جدید برای آرایههای Associative باشد.
مثلا هنگام افزودن عنصر به آرایههای Indexed، نوشتن $num_array[] = 67; منجر به اضافه شدن مقدار 67 به انتهای $num_array میشود.
چطور عناصر را از آرایه های PHP حذف کنیم؟
با استفاده از یکی از دو تابع unset()
یا array_splice()
میتوانید عناصر موجود در آرایهها را حذف کنید. هنگام استفاده از تابع unset()
میتوانید با تعیین ایندکس یا کلید، عناصر مشخصی را از آرایههای Indexed یا Associative پاک کنید.
به مثال زیر نگاه کنید:
$fruits = ['apple', 'orange', 'banana', 'grape'];
unset($fruits[2]);
print_r($fruits);
// Output: Array ([0] => apple [1] => orange [3] => grape)
در این مثال، به کمک تابع unset() سومین عنصر (banana) را از آرایه $fruits پاک کردهایم.
یک روش دیگر هم میتواند استفاده از تابع array_splice() باشد که امکان حذف بازهای از عناصر موجود در آرایه Indexed را مهیا میکند. برای حذف یک جفت کلید-مقدار از آرایه Associative نیز میتوانید از همین تابع کمک بگیرید و کلید مورد نظرتان را تعیین کنید.
روش کار به این شکل خواهد بود:
$user_data = [
'name' => 'John Doe',
'email' => 'johndoe@example.com',
'age' => 30,
'country' => 'United States'
];
unset($user_data['country']);
print_r($user_data); // Output: Array ( [name] => John Doe [email] => johndoe@example.com [age] => 30 )
در این کد، جفت کلید-مقدار 'country'
را با استفاده از تابع unset()
از آرایه خود پاک کردهایم.
چطور وجود یک مقدار را در آرایه PHP بررسی کنیم؟
با تابع in_array()
میتوانید ببینید که آیا مقداری بهخصوص درون آرایه وجود دارد یا خیر. این تابع به دنبال مقدار مورد نظر شما میگردد. اگر آن را بیابد true را بازمیگرداند و اگر نه،false را.
مثال زیر را ببینید:
$fruits = ['apple', 'orange', 'banana', 'grape'];
if (in_array('apple', $fruits)) {
echo 'Apple is in the fruits array';
} else {
echo 'Apple is not in the fruits array';
}
// Output: Apple is in the fruits array
در این مثال، از تابع in_array()
کمک گرفتهایم تا ببینیم آیا مقدار apple
در آرایه $fruits
وجود دارد یا خیر. از آنجایی که apple
در آرایه وجود دارد، خروجی true به دست میآید و پیام Apple is in the fruits array
به نمایش درخواهد آمد. اگر apple
در آرایه نبود، پیام Apple is not in the fruits array
را دریافت میکردید.
ناگفته نماند که تابع in_array()
به بزرگی و کوچکی جروف انگلیسی حساس است و بنابراین apple
و Apple
دو مقدار متفاوت به حساب میآیند. اگر میخواهید جستجو را بدون حساسیت به بزرگی و کوچکی حروف پیش ببرید، از تابع array_search()
استفاده کنید.
چطور آرایه های PHP را در حلقه (لوپ) قرار دهیم؟
برای قرار دادن آرایه PHP درون لوپ، از حلقه foreach به این شکل استفاده میکنیم:
foreach ($array as $key => $value) {
// Code to be executed for each element of the array
}
در کد بالا، $array
نام آرایهای است که میخواهید در حلقه قرار بگیرد. $key
و $value
هم متغیرهایی هستند که کلید و مقدار عنصر کنونی آرایه را در خود نگه میدارند.
چطور آرایه های PHP را مرتب کنیم؟
مرتبسازی (Sorting) یکی از رایجترین عملیاتهایی است که هنگام کار با آرایههای PHP به سراغ آن خواهید رفت. در ادامه برخی از توابعی را آوردهایم که میتوانید از آنها برای مرتبسازی آرایهها استفاده کنید:
sort()
: مقادیر آرایه را به صورت صعودی مرتب میکند.rsort()
: مقادیر آرایه را به صورت نزولی مرتب میکند.asort()
: بسته به مقدار، آرایه Associative را به صورت صعودی مرتب میکند.arsort()
: بسته به مقدار، آرایه Associative را به صورت نزولی مرتب میکند.ksort()
: بسته به کلید، آرایه Associative را به صورت صعودی مرتب میکند.krsort()
: بسته به کلید، آرایه Associative را به صورت نزولی مرتب میکند.
چطور آرایهای چندبعدی در پیاچپی بسازیم؟
برای داشتن آرایهای چندبعدی در PHP صرفا باید آرایهای از آرایهها را بسازید. مثال زیر را در نظر بگیرید:
$multi_array = [
['apple', 'orange'],
['banana', 'grape'],
['peach', 'plum'],
];
در کد بالا، آرایهای چندبعدی ساختهایم که شامل سه آرایه است و هرکدام از آنها نیز دو عنصر دارند.
جمعبندی
اکنون که به بخش پایانی مقاله رسیدهایم، قطعا درکی عمیق از آرایههای زبان برنامهنویسی پی اچ پی به دست آوردهاید. آرایهها نقشی مهم در ذخیرهسازی و دستکاری مجموعه دادهها ایفا میکنند و در واقع برای آسانتر کردن کار توسعهدهندگان و برنامهنویسان طراحی شدهاند. به یاد داشته باشید که آرایههای PHP لزوما عددی نیستند و میتوانند به صورت وابسته به کلید هم نوشته شوند. سپس میتوانید این کلیدها را به مقادیری مشخص متصل کنید و به شکلی آسان به موارد مد نظر خود دسترسی یابید.
+ منبع: SitePoint