آرایه در php (آموزش به زبان ساده تر)
آرایه در علوم کامپیوتر یک ساختار داده است که چند مقدار را در یک متغیر ذخیره می کند. مانند لیستی از مقادیر. آرایه ها ابزار قدرتمندی برای ذخیره متغیرها هستند که به راحتی با شماره اندیس می توانید به مقادیر دسترسی پیدا کنید.
در این آموزش با آرایه ها در PHP آشنا خواهید شد. نحوه نوشتن و استفاده از آرایه ها و همجنین مشکلات کار با آنها را به طور کامل توضیح خواهیم داد.
فهرست مطالبی که در اینجا بررسی می کنیم:
- آرایه ها در PHP
- نحوه اعلان آرایه ها در PHP
- توابع آرایه ای PHP
- مثال کار با آرایه ها در PHP
حتما در کنار این مطلب دانلود کنید: آموزش صفر تا صد طراحی وبسایت (رایگان)
آرایه ها در PHP
به زبان ساده یک آرایه در PHP یک لیست است، دقیقا مانند جاوا اسکریپت که یک آرایه لیستی از مقادیر است. برای مثال می توانید آرایه ای از اعداد صحیح مانند [1, 2, 3, 4, 5] یا ترکیبی از انواع داده ها مانند [false, 40, ‘purple’, $object, ‘puppy’] ایجاد کنید.
آرایه ها امکان ذخیره چند مقدار را تحت یک نام مشترک فراهم می کنند و برای دسترسی به هر یک از مقادیر از یک عدد به نام اندیس یا ایندکس (index) استفاده می شود، اندیس برای اولین عنصر در آرایه 0 است.
تعداد کل عناصر یک آرایه به عنوان طول یا اندازه آرایه شناخته می شود. طول آرایه ها پویا است و می تواند در طی برنامه تغییر کند.
رفتار آرایه ها در PHP کمی متفاوت تر از چیزی است که در سایر زبان ها دیده اید. در PHP چند نوع آرایه وجود دارد که انواع داده های مختلف را نگه می دارند. آرایه ها در PHP ساختار یافته تر هستند و می توانیم برای نگهداری مجموعه جفت های “کلید-مقدار” از آنها استفاده کنیم.
سه نوع آرایه در PHP وجود دارد:
- آرایه های ایندکس یا عددی: آرایه ها با اندیس عددی
- آرایه های انجمنی (Associative): آرایه ها با کلیدهای دارای نام
- آرایه های چند بعدی: آرایه های حاوی یک یا چند آرایه
آرایه های انجمنی در PHP محتوا و اطلاعات بیشتری را در اختیار قرار می دهند و برای توسعه وب و سایر نیازهای برنامه نویسی بسیار مفید هستند. همه آرایه های PHP ماهیتی انجمنی دارند.
به عنوان مثال در پایتون به آنها دیکشنری گفته می شوند و در جاوا اسکریپت می توانیم رفتار شبیه آن را با اشیاء کدنویسی کنیم.
نحوه اعلان آرایه ها در PHP
یک آرایه جدید را با استفاده از تابع ()array ایجاد می کنیم.
<?php
$foo = array(1, 2, 3); // یک آرایه از اعداد صحیح با تابع ساخته شده است
$bar = [“A”, true, 123 => 5]; // PHP 5.4+ ساختار آرایه کوتاه،
echo $bar[0]; // برمی گرداند”A”
echo “n”;
echo $bar[1]; // مقدار 1 را برمی گرداند trueبرای
echo “n”;
echo $bar[123]; // برمی گرداند 5
echo $bar[1234]; // خطا می دهد
?>
نکته: می توانیم از براکت ها [] نیز برای اعلان آرایه استفاده کنیم. کاما بعد از آخرین عنصر اختیاری است.
علاوه بر اینها از تابع ()list نیز برای مقداردهی متغیرها در یک روش کوتاهتر استفاده می شود.
// define array
$array = [‘a’, ‘b’, ‘c’];// without list()
$a = $array[0];
$b = $array[1];
$c = $array[2];// with list()
list($a, $b, $c) = $array;
نکته: ()list همچنین با foreach برای ساخت یک ساختار ساده خوب کار می کند.
$arrays = [[1, 2], [3, 4], [5, 6]];
foreach ($arrays as list($a, $b)) {
$c = $a + $b;
echo($c . ‘, ‘); // 3, 7, >11,
}
آرایه های ایندکس یا عددی در PHP
در آرایه های عددی یا ایندکس مقادیر عددی، رشته ها یا اشیا به عنوان عناصر آرایه ذخیره می شوند و اندیس آنها نیز با یک عدد مشخص می شود. مثال زیر و خروجی آن را برای درک ساختار این نوع ارایه بررسی کنید.
<html>
<body>
<?php
/* روش اول برای تعریف آرایه */
$numbers = array( 1, 2, 3, 4, 5);
foreach( $numbers as $value ) {
echo “Value is $value <br />”;
}
/* روش دوم برای تعریف آرایه */
$numbers[0] = “one”;
$numbers[1] = “two”;
$numbers[2] = “three”;
$numbers[3] = “four”;
$numbers[4] = “five”;
foreach( $numbers as $value ) {
echo “Value is $value <br />”;
}
?>
</body>
</html>
آرایه های انجمنی در PHP
آرایه های انجمنی شبیه آرایه های عددی هستند اما اندیس آنها متفاوت هستند. اندیس آرایه های انجمنی در PHP یک رشته است که جفت های کلید-مقدار را به هم ارتباط می دهد.
در مثال زیر در یک آرایه انجمنی از نام کارمندان به عنوان کلید (اندیس) همراه با حقوق آنها به عنوان مقدار استفاده می کند.
<html>
<body>
<?php
/* روش اول برای تعریف آرایه */
$salaries = array(“mark” => 2000, “janet” => 1000, “asma” => 500);
echo “Salary of mark is “. $salaries[‘mark’] . “<br />”;
echo “Salary of janet is “. $salaries[‘janet’]. “<br />”;
echo “Salary of asma is “. $salaries[‘asma’]. “<br />”;
/* روش دوم برای تعریف آرایه */
$salaries[‘mark’] = “high”;
$salaries[‘janet’] = “medium”;
$salaries[‘asma’] = “low”;
echo “Salary of mark is “. $salaries[‘mark’] . “<br />”;
echo “Salary of janet is “. $salaries[‘janet’]. “<br />”;
echo “Salary of asma is “. $salaries[‘asma’]. “<br />”;
?>
</body>
</html>
آرایه های چند بعدی در PHP
در یک آرایه چند بعدی هر عنصر در آرایه اصلی خود نیز یک آرایه است. مقادیر در آرایه چند بعدی با چند اندیس قابل دسترسی است. ساختار اعلان آرایه های دو بعدی به صورت زیر است:
$arrayName = array(array(), array()……array())
مثال زیر یک آرایه پیچیده چند بعدی را نشان می دهد . یک آرایه عددی است که هر عنصر آن نیز یک آرایه انجمنی می باشد.
// تعریف آرایه چندبعدی
$economy = array(
array(
“country” => “Germany”,
“currency” => “Euro”,
),
array
“country” => “Switzerland”,
“currency” => “Swiss Franc”,
),
array
“country” => “England”,
“currency” => “Pound”,
)
);
echo “Currency of Germany is: ” . $economy[0][“currency”]; // دسترسی به عنصر با اندیس 0 در آرایه
?>
توابع آرایه ای در PHP
کارهای مختلفی می توانیم روی آرایه ها در PHP انجام دهیم. توابع آرایه ای برای دستکاری، تغییر و استفاده از آرایه ها به کار می روند. در اینجا 10 تابع آرایه ای رایج را معرفی می کنیم اما ده ها تابع بیشتر از اینها وجود دارد.
- array_keys: همه کلیدهای یک آرایه را برمی گرداند.
- in_array: بررسی می کند که یک مقدار خاص در آرایه وجود دارد یا خیر.
- array_reverse: یک آرایه با ترتیب عکس عناصر آرایه فعلی برمی گرداند.
- array_unshift: یک یا چند عنصر را به ابتدای آرایه اضافه می کند.
- array_pop: عنصر انتهای آرایه را حذف می کند و مقدار آن را بر می گرداند.
- array_push: یک یا چند عنصر را در انتهای آرایه اضافه می کند.
- array_diff_assoc: تفاوت آرایه ها را با بررسی اندیس ها محاسبه می کند.
- array_map: تابع callbackرا روی عناصر آرایه های داده شده اعمال می کند.
- array_merge: چند آرایه را با هم ادغام کنید.
- array_filter: عناصر آرایه را با تابع callback فیلتر می کند.
خروجی آرایه ها در PHP
برای چاپ یک آرایه با فرمت قابل خواندن از دستور زیر استفاده می کنیم:
print_r(نام آرایه)
در نتیجه کلیدها و مقادیر مرتبط با آنها چاپ می شود.
<?php
$fruits = array(“Type”=>”Citrus”,1=>”Orange”,2=>”Grapefruit”,3=>”Lemon”);
print_r($fruits);
?>
به دست آوردن طول آرایه
برای به دست آوردن طول یا اندازه آرایه ها از تابع ()count استفاده می شود.
count ( Countable|array $value , int $mode = COUNT_NORMAL )
خروجی تابع یک عدد صحیح (int) است.
<?php
$food = array(‘fruits’ => array(‘orange’, ‘banana’, ‘apple’),
‘veggie’ => array(‘carrot’, ‘collard’, ‘pea’));
// recursive count
echo count($food, COUNT_RECURSIVE); // 8خروحی:
// normal count
echo count($food); // 2 خروحی:
?>
دسترسی به عناصر آرایه
دسترسی به عناصر آرایه با استفاده از کلید عنصرامکان پذیر است.
<?php
$array = array(
“foo” => “bar”,
42 => 24,
“multi” => array(
“dimensional” => array(
“array” => “foo”
)
)
);
var_dump($array[“foo”]);
var_dump($array[42]);
var_dump($array[“multi”][“dimensional”][“array”]);
?>
بازگشت مقادیر آرایه
تابع array_values مقادیر آرایه را برمی گرداند.
array_values (نام آرایه) : یک آرایه برمی گرداند
<?php
$array = array(“size” => “M”, “color” => “yellow”);
print_r(array_values($array));
?>
آرایه ها در حلقه ها
هنگام کار با آرایه ها معمولا روی عناصر آرایه پیمایش شده و کارهایی مانند جمع، نمایش و … انجام می شود. متداول ترین روش پیمایش آرایه در PHP استفاده از foreach است.
همچنین می توانید از حلقه for استفاده کنید اما به طور کلی نوشتن و خواندن foreach آسان تر است.
foreach ($array as $key => $value) {
echo “Key is $key.”;
echo “Value is $value.”;
}
مثال کار با آرایه ها در PHP
حالا آنچه که آموخته ایم را در چند مثال عملی به کار می بریم.
در اولین مثال می خواهیم نحوه تعریف تابع را ببینیم. یک متد به نام ()findMaxVal می نویسیم تا بزرگترین مقدار صحیح ذخیره شده در یک آرایه با اندازه ای را به دست آورد.
ورودی تابع یک آرایه است که به عنوان پارامتر به آن ارسال می شود و تابع نیز بزرگترین مقدار موجود در آرایه به عنوان یک عدد صحیح برمی گرداند. قبل از نوشتن کد ابتدا با یک مثال آن را امتحان کنید.
نمونه ورودی: {2, 9, 6, 17, 15}
خروجی: 17
<?php
//Returns maximum value from Array passed as parameter
function findMaxVal($array)
{
$max = $array[0];
foreach($array as $key => $val){
if($max < $val){
$max = $val;
}
return $max;
}
}
?>
دومین مثال، چاپ یک آرایه دو بعدی با اندازه n x n در قالب یک ماتریس است:
ورودی یک عدد صحیح برای تعیین بعد ماتریس است، برای خروجی هم یک ماتریس در کنسول نشان داده می شود. به عنوان مثال برای مقدار 3 یک آرایه با اندازه 3 * 3 به صورت زیر چاپ خواهد شد:
- قطر فرعی ماتریس باید با 1 پر شود.
- قسمت بالا و پایین قطر فرعی باید با 0 پر شود.
مطمئن شوید که بین مقادیر فاصله وجود دارد و هر سطر در خط بعدی چاپ می شود. برای انتقال مقدار به خط بعدی می توانید از PHP_EOL استفاده کنید.
<?php
function printMat($n) {
for($i=0;$i<$n;$i=$i+1)
{
for($j=0;$j<$n;$j=$j+1)
{
if($i+$j==$rows-1)
{
$a[$i][$j]=1;
}
else
{
$a[$i][$j]=0;
}
echo $a[$i][$j].” “;
}
echo “<br>”;
}
}
?>
حتما دانلود کنید: آموزش صفر تا صد PHP (رایگان)