آموزش آرایه در PHP

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

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

آرایه چیست و در PHP چه کاربردی دارد ؟

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

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

در حالت کلی می‌توان اکثر کاربردها را در سه دسته زیر قرار داد.

  • ذخیره سازی موقت چند داده
  • محاسبات مختلف روی داده‌های گروهی (مثلاً مرتب‌سازی یا حذف عناصر تکراری)
  • کار با فیلدهای چندگانه (Multiple) ارسال شده از سمت کاربر توسط PHP

ساخت آرایه در PHP

در زبان PHP به کمک تابع array() می‌توان یک آرایه ایجاد کرد. فقط کافی است این تابع را صدا بزنید تا متغیر مورد نظر، به صورت آرایه تعریف شود.

$test_array = array();

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

ساختار آرایه در برنامه نویسی

تصویر ساختار آرایه در برنامه نویسی

انواع آرایه در PHP

در حالت کلی شاید بتوان گفت، آرایه فقط یک نوع است! اما با توجه به ویژگی‌ها و کاربرهای مختلف، اکثراً آرایه در PHP را به سه نوع تقسیم‌بندی می‌کنند.

1- آرایه فهرستی (آرایه عددی)

آرایه عددی (یا Numeric) که به آرایه فهرستی (یا Indexed) نیز معروف است ساده‌ترین نوع آرایه است. این نوع آرایه‌ها فقط شامل عناصر هستند.

آرایه زیر یک نوع آرایه عددی در PHP است. در این آرایه نام سه فرد را نگهداری می‌کنیم.

<?php
$persons = array("Sara", "Omid", "Sam")
?>

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

به کمک علامت [] در جلوی نام آرایه، می‌توان به تک تک عناصر دست یافت.

<?php
echo $person[1];
?>
// Omid

همانطور که می‌بینید خروجی این برنامه، عنصر دوم (با ایندکس 1) در آرایه است.

حالت دوم تعریف آرایه عددی

می‌توان مقادیر مورد نظر را پس از ایجاد آرایه نیز مشخص کرد. برای این کار، مقدار مورد نظر را در ایندکس دلخواه قرار می‌دهیم.

<?php

$persons_new = array();

$persons_new[0] = "Sara";
$persons_new[1] = "Omid";

?>

 

2- آرایه انجمنی (کلید و مقدار)

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

در آرایه انجمنی (Associative Array) هر مقدار دارای یک کلید است. این کلید توسط ما ایجاد شده و برای هر عنصر از آرایه یکتاست. برای دسترسی به عناصر آرایه انجمنی، در هنگام صدا زدن آرایه، در داخل [] مقدار کلید را قرار می‌دهیم.

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

$ages = array( "sara" => 19, "omid" => 20, "sam" => 22 );

حال برای دسترسی به سن سارا، کافی است آرایه را به صورت زیر صدا بزنیم.

echo $ages["sara"];

مشابه آرایه‌های عددی، می‌توان عناصر دیگر این آرایه را به صورت زیر نیز تعریف کرد.

$ages["nazanin"] = 15;

 

به دلیل اینکه در آرایه‌های Associative به هر مقدار یک کلید نسبت می‌دهیم، به این آرایه‌ها، آرایه‌های کلید-مقدار (Key-Value) نیز گفته می‌شود.

3- آرایه چند بعدی (ماتریس)

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

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

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

هر عنصر از آرایه اصلی، یک آرایه است که اطلاعات فردی خاص در آن قرار گرفته است.

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

آرایه چند بعدی زیر، نام و سن چند فرد را در خود نگهداری می‌کند.

<?php

// Define Multidimensional Array:
$users = array(
    array(
        "name" => "Sara",
        "age" => 19,
        "email" => "sara@domain.com",
    ),
    array(
        "name" => "Omid",
        "age" => 20,
        "email" => "omid@domain.com",
    ),
    array(
        "name" => "Sam",
        "age" => 22,
        "email" => "sam@domain.com",
    )
);
?>

 

کار با آرایه در PHP

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

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

چاپ آرایه در php

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

اما نوشتن حلقه‌های مختلف برای بررسی محتویات چند آرایه شاید کار راحتی نباشد. در این جا دو تابع برای چاپ عناصر آرایه معرفی می‌کنیم.

تابع اول: تابع print_r

تابع print_r() آرایه را گرفته و در خروجی تمام مقادیر به همراه ایندکس‌ها (یا کلیدها) را چاپ می‌کند.

$arr = array("sara", "omid", "sam");

print_r($arr);

// Array([0]=>sara [1]=>omid [2]=>sara)

 

اگر می‌خواهید خروجی زیباتری داشته باشید، می‌توانید قبل و بعد از خروجی این تابع، یک تگ <pre> قرار دهید. با این کار فواصل ایجاد شده، در صفحه HTML نیز نمایش داده می‌شود.

<?php

$arr = array("sara", "omid", "sam");

echo "<pre>";
print_r($arr);
echo "</pre>";

?>

خروجی این کد در صفحه HTML چیزی شبیه زیر خواهد شد.

Array
(
    [0] => sara
    [1] => omid
    [2] => sam
)

تابع دوم: تابع var_dump

تابع var_dump() نیز آرایه را به عنوان ورودی گرفته و از نظر ظاهری چیزی شبیه به تابع اول چاپ می‌کند. با این تفاوت که نوع داده‌ای هر کدام از عناصر را نیز مشخص می‌کند.

<?php
$arr = array("sara", "omid", "sam");

echo "<pre>";
var_dump($arr);
echo "</pre>";
?>

خروجی کد بالا مشابه زیر خواهد شد.

array(3) {
    [0] => string(4) "sara"
    [1] => string(4) "omid"
    [2] => string(3) "sam"
}

 

جایگزین کردن مقدار جدید در آرایه

هر چند کم اتفاق می‌افتد، اما گاهی اوقات نیاز داریم مقدار یک عنصر از آرایه را بازنویسی (overwrite) یا با مقدار جدیدی عوض کنیم.

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

<?php

// Changing an Array Element:
$arr = array("Red", "Yellow", "Green");

$arr[1] = "Blue";

// new $arr = array("Red", "Blue", "Green")

?>

در این جا مقدار دومین عضوِ آرایه را از Yellow به Blue تغییر دادیم.

استفاده از آرایه در حلقه

در زبان برنامه نویسی PHP یک حلقه مخصوص آرایه‌ها به نام foreach داریم. به کمک این تابع می‌توان هر نوع آرایه‌ای را مورد بررسی قرار داد.

اگر صرفاً آرایه عددی داشته باشیم، می‌توان به کمک یک حلقه ساده for ، اندیس‌ها را افزایش داده و به تک تک عناصر دسترس داشت. ما در این جا صرفاً حلقه foreach() را بررسی می‌کنیم.

اگر آرایه $persons یک آرایه عددی باشد، برای دسترسی به عناصر آن به صورت زیر عمل می‌کنیم.

<?php

foreach( $persons as $name ){
    echo $name . "<br>"
}

?>

 

اگر با آرایه $ages که یک آرایه انجمنی است، به صورت قبل عمل کنیم، صرفاً سن افراد (مقادیر آرایه یا valueها) را خواهیم داشت.

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

<?php

foreach( ages as $name => $age ){
    echo "Age of" . $name . "is: " . $age . "<br>";
}

?>

 

توابع آرایه در پی اچ پی

برای کار با آرایه‌ها در زبان PHP توابع مختلفی وجود دارد. دو مورد از پرکاربردترین توابع را در ادامه بررسی می‌کنیم.

محاسبه اندازه آرایه در PHP

تابع count() یک ورودی گرفته و اندازه آرایه را به ما بازمی‌گرداند. منظور از اندازه آرایه، تعداد عناصر موجود در آرایه است.

<?php
$test = array(5, 7, 11, 6, 14, 25);

echo count($test); // 6
?>

در صورتی که یک آرایه چند بعدی داشته باشیم، تعداد عناصر (آرایه‌های) سطح اول را شمرده و برمی‌گرداند.

بررسی آرایه بودن یک متغیر

گاهی اوقات در یک برنامه نیاز داریم نوعِ متغیر را بررسی کرده و در صورت آرایه بودن ادامه دهیم. به کمک تابع is_array() می‌توان این کار را انجام داد.

تابع is_array() یک متغیر به عنوان ورودی گرفته و نتیجه را به صورت boolean به دو حالت true یا false بازمی‌گرداند.

<?php
$var = "Test SabzDanesh text!";
$arr = array("SabzDanesh", "Learning");

echo is_array( $var ); // false
echo is_array( $arr ); // true

?>

 

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

مرتب سازی آرایه ها در PHP

مرتب سازی آرایه ها در PHP

 

جمع بندی: آرایه در PHP

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

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

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