آشنایی با توابع رشته ای در PHP
در مبحث آموزش ساخت سایت ، آرایه یک متغیر خاصی است که می تواند مقادیر زیادی از داده ها را در خود ذخیره کند، برعکس متغیرها (که با علامت $ معرفی شان می کردیم) که می توانستند، فقط یک مقدار را ذخیره کند. هر آرایه ای می تواند تعداد زیادی عنصر داشته باشد و هر عنصر نیز دارای مقدار می باشد.اگر شما یک لیست از اقلام (به عنوان مثال یک لیست از نام رنگ ها) داشته باشید، ذخیره سازی رنگ در متغیرهای واحد، به صورت زیر می باشد:
$color1 = “RED”;
$color2 = “BLUE”;
$color3 = “GREEN “;
حال اگر خواستید از طریق حلقه ها دنبال رنگ خاصی بگردید چه؟ و اگر به جای ۳ رنگ ۳۰۰ داشتید چه ؟ آیا باید برای هر مقدار یک متغیر تعریف کنیم؟ آیا راه حل بهتری وجود دارد؟
– بله، راه حل ایجاد آرایه است! یک آرایه می تواند مقادیر زیادی را با یک نام نگه دارد، و شما می توانید با ارجاع به یک عدد شاخص(index) یا همان اندیس، به مقادیر دسترسی داشته باشید.
نحوه ساخت یک آرایه
به روش های مختلف میتوان یک آرایه را تعریف کرد.
● با روش نام آرایه و براکت باز و بسته [] :
$color[]=”RED”;
$color[]=”BLUE”;
$color[]=”GREEN”;
● از تابع array() برای ایجاد یک آرایه هم می توان استفاده نمود :
$color = array(“RED”, “BLUE”, “GREEN “);
● به این روش نیز می توان یک آرایه ساخت :
$color = [“RED”, “BLUE”, “GREEN “];
در php مانند متغیرها نیاز نیست تا نوع آرایه را تعریف کنیم . همچنین در تعریف آرایه نیاز نیست طول آرایه ذکر شود.
نکته :لازم نیست عناصر موجود در آرایه همه از یک نوع باشند. می توانند هر کدام از نوع های مختلف باشند.
<?php
$test[]=5;
$test[]=0.9;
$test[]=”Hello PHP”;
for($i=0;$i<3;$i++)
{
echo(“$test[$i]<br/>”);
}
?>
خروجی
۵
۰٫۹
Hello PHP
در PHP، سه نوع آرایه وجود دارد:
- Indexed Arrays : آرایه های اندیس دار یا ایندکس دار – (آرایه ای با اندیس عددی)
- Associative Arrays : آرایه های انجمنی – (آرایه ای با کلیدهای نامگذاری شده)
- Multidimensional Arrays : آرایه های چند بعدی – (آرایه ای حاوی یک یا چند آرایه)
آرایه های ایندکس دار
آرایه های ایندکس دار، آرایه هایی هستند که اندیس آنها عددی می باشد. دو راه برای ایجاد آرایه های ایندکس دار، وجود دارد:
- تعیین اندیس به صورت خودکار (اندیس همیشه از صفر شروع می شود)
- تعیین اندیس به صورت دستی
۱٫ روش تعیین اندیس به صورت خودکار
دراین روش هنگامی که آرایه را تعریف می کنیم، به طور خودکار برای هر عنصر آرایه، اندیسی از صفر تعلق می گیرد.
برای چاپ این نوع آرایه و دیدن اندیس هایش می توان از حلقه for استفاده نمود و آرایه را پیمایش کرد و عناصر را چاپ نمود:
<?php
$color = array(“RED”, “BLUE”, “GREEN “);
for( $i=0 ; $i<3 ; $i++ )
{
echo(“$color[$i] = $color[$i]<br/>n”);
}
?>
خروجی
$color[0] = RED
$color[1] = BLUE
$color[2] = GREEN
۲٫ تعیین اندیس به صورت دستی
اندیس آرایه همیشه از عدد صفر شروع می شود. ولی اگر بخواهیم این اتفاق نیفتد و اندیس آرایه از هر عدد دلخواه شروع شود می توانیم به صورت دستی این عدد را تغییر دهیم.
<?php
$color[1] = “RED”;
$color[0] = “BLUE”;
$color[4] = “GREEN”;
for( $i=0 ; $i<5 ; $i++ )
{
echo(“$color[$i] = $color[$i]<br/>n”);
}
?>
خروجی :
$color[0] = BLUE
$color[1] = RED
$color[2] =
$color[3] =
$color[4] = GREEN
همانطور که می بینید عنصر سوم و چهارم آرایه، مقداری ندارند، چون مقداردهی به صورت دستی بود و برایشان مقداری در نظر نگرفتیم. با این روش می توانیم هر مقداری را در هر اندیسی قرار دهیم.
آرایه های انجمنی (Associative Arrays)
در php علاوه بر اینکه می توانیم از اندیس عددی برای تعریف آرایه استفاده کنیم، می توانیم از اندیس غیرعددی مانند اندیس رشته ای یا متنی نیز استفاده کنیم. بطور مثال ما می توانیم به این شکل هم آرایه تعریف کنیم :
این نکته گفتنی است که برای چاپ مقادیرِ آرایه های انجمنی، برخلاف آرایه های اندیس دار نمی توان از حلقه For استفاده نمود. بلکه ما باید از حلقه Foreach استفاده کنیم.
<?php
$age = [“James M. Cooley”=>”40”, “Georgia R. Bailey”=>”27”, “Mildred V. Parker”=>”55”];
foreach ($age as $key => $value) {
echo “$age[ ” . $key .”] = “. $value . ” <br/>”;
}
?>
خروجی :
$age[ James M. Cooley] = 40
$age[ Georgia R. Bailey] = 27
$age[ Mildred V. Parker] = 55
دریافت طول آرایه – تابع count ()
تابع count () برای به دست آوردن طول (تعداد عناصر) یک آرایه استفاده می شود:
<?php
$color = array(“RED”, “BLUE”, “GREEN “);
echo count($color);
?>
خروجی
۳
نمایش آرایه به کمک تابع print_r
این تابع نام آرایه را می گیرد و عناصر آرایه را چاپ می کند :
<?php
$color = array(“RED”, “BLUE”, “GREEN “);
echo(“<pre>”);
print_r($color);
echo(“</pre>”);
?>
خروجی :
Array
(
[۰] => RED
[۱] => BLUE
[۲] => GREEN
)
نکته : از تگ های <pre></pre> استفاده نمودیم تا شکل منظمی به خروجی مان بدهیم و خروجی تماما در یک سطر نمایش داده نشود.
نمایش آرایه به کمک تابع var_dump
این تابع نسبت به print_r نتایج کامل تری را به ما ارائه می دهد.
<?php
$color = array(“RED”, “BLUE”, “GREEN “);
echo(“<pre>”);
print_r($color);
echo(“</pre>”);
?>
خروجی :
array (size=3)
۰ => string ‘RED’ (length=3)
۱ => string ‘BLUE’ (length=4)
۲ => string ‘GREEN ‘ (length=6)
منبع : کلیک سایت