فوریه 21, 2019 Mostafa بدون دیدگاه

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

توجه : درخواست افزونه ،قالب، اسکریپت و نرم افزار و ... و سوالات و مشکلات خود را در انجمن ارسال نمایید

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

آرایه چیست؟

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

 

<!DOCTYPE html>
<html>
<body>
 
<?php
$cars=array("Volvo","BMW","Toyota");
echo "I like " . $cars[0] . ", " . $cars[1] . " and " . $cars[2] . ".";
?>
 
</body>
</html>

 

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

I like Volvo, BMW and Toyota.

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

اهمیت آرایه‌ها در PHP زمانی بسیار واضح می‌شود که شما ۳۰۰ متغیر در یک حلقه داشته باشید و تنها بخواهید یک متغیر خاص را پیدا نمایش بدهید! در آن زمان است که آرایه با قرار دادن هر چند مقدار در یک نام از حجم نوشتن شما می‌کاهد و سرعت عملکرد کد را بالا می‌برد.

چگونه یک آرایه در PHP بسازیم؟

در PHP، آرایه ها به  صورت زیر نوشته می‌شوند.

array();

 

آرایه‌ ها در PHP به سه دسته بر اساس نوع عملکردشان تقسیم می‌شوند:

  • آرایه‌ ایندکس شده یا عددی (Indexed arrays): آرایه‌هایی که با استفاده از عدد نمایش داده می‌شوند
  • آرایه‎ انجمنی( Associative arrays): آرایه‌هایی که با یک نام کلیدی فراخوان می‌شوند
  • آرایه‌چند بعدی (Multidimensional arrays): آرایه‌هایی که شامل یک یا چند آرایه هستند

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

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

$cars=array("Volvo","BMW","Toyota");

 

خودمان به صورت دستی اعداد( جایگاه متغیر در آرایه) هر متغیر را بنویسیم.

$cars[0]="Volvo";
$cars[1]="BMW";
$cars[2]="Toyota";

 

به مثال قبل را دوباره اشاره می‌کنیم. این مثال جزو آرایه عددی در PHP است. در دستور echo اعداد هر متغیر به صورت دستی وارد شده است. پس حالت دوم را شامل می‌شود.

<!DOCTYPE html>
<html>
<body>

<?php
$cars=array("Volvo","BMW","Toyota");
echo "I like " . $cars[0] . ", " . $cars[1] . " and " . $cars[2] . ".";
?>

</body>
</html>

 

 طول آرایه- تابع ( )Count

در آرایه‌ها هرگاه بخواهیم تعداد عضوهای درون آرایه را بدانیم از تابع ( )count استفاده می‌کنیم. خروجی این تابع تنها یک عدد است که به تعداد متغیر ها اشاره دارد.

<!DOCTYPE html>
<html>
<body>
 
<?php
$cars=array("Volvo","BMW","Toyota");
echo count($cars);
?>
 
</body>
</html>

 

این مثال تنها سه عضو volvo، BMW وToyota را دارید پس خروجی این مثال عدد ۳ است.

 حلقه در طول یک آرایه عددی

برای نمایش تمام عضوهای درون یک آرایه می‌توانید از حلقه for استفاده کنید. مانند مثال زیر:

<!DOCTYPE html>
<html>
<body>
 
<?php
$cars=array("Volvo","BMW","Toyota");
$arrlength=count($cars);
 
for($x=0;$x<$arrlength;$x++)
   {
   echo $cars[$x];
   echo "<br>";
   }
?>
 
</body>
</html

 

در این مثال ابتدا آرایه ها را معرفی کردیم، و خواسته شد تعداد ماشین ها شمارش شود. یک حلقه for تعریف کردیم . شرطی تعریف کردیم، متغیر x$ های مساوی صفر تا زمانی که x از مقدار طول آرایه کوچکتر باشد و هر بار به x یک واحد اضافه کن. در نهایت نام ماشین ها را در خطوط جداکانه به چاپ برسان.

خروجی این مثال به صورت زیر است.

Volvo
BMW
Toyota

آرایه انجمنی در PHP

آرایه انجمنی یا( Associative Arrays) آرایه هایی هستند که با یک نام کلیدی خاص خود فراخوان می‌شود. در شکل زیر هر یک از دایره ها عضوهای مقابل آرایه است که هر کدام با نام کلیدی خاص خود (key name) فراخوان می‌شود.

آرایه انجمنی در PHP را می‌توان به دو صورت نوشت. اولین روش این است که همه عضوهای آرایه را در یک خط در مقابل آرایه بنویسیم. مانند نمونه زیر:

$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");

 

و یا برای هر عضو آرایه به صورت جداگانه متغیر تعریف کنیم. در نمونه زیر به هر نام به صورت جداگانه متغیر age$ اختصاص گرفته است.

$age['Peter']="35";
$age['Ben']="37";
$age['Joe']="43";

 

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

<!DOCTYPE html>
<html>
<body>
 
<?php
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
echo "Peter is " . $age['Peter'] . " years old.";
?>
 
</body>
</html>

 

مثال را مشاهده کردید؟  همان طور که دیدید متغیر age$ را تنها با نام عضو صدا کرده است. در این مثال سن شخصی به نام peter را نمایش می‌دهد، خروجی به صورت زیر است.

Peter is 35 years old.

برای آرایه عددی حلقه for را تعریف کردیم برای آرایه انجمنی در PHP نیز می‌توان حلقه ‌ای foreach را معرفی کرد. به مثال زیر دقت کنید:

<!DOCTYPE html>
<html>
<body>
 
<?php
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
 
foreach($age as $x=>$x_value)
   {
   echo "Key=" . $x . ", Value=" . $x_value;
   echo "<br>";
   }
?>
 
</body>
</html>

 

در این مثال ابتدا یک آرایه انجمنی تعریف کردیم، و سپس در حلقه foreach شرط را بیان کردیم متغیر age$ را به صورت x=>$x_value$ باشد. متغیر x$ نام شخص و متغیر x-value$ سن ان شخص است. در قسمت echo طریق نوشتن این دستور را در برنامه تعریف می‌کند. توجه داشته باشد در دستور echo متغیر x$ قبلش یک نقطه تعریف شده است! این نقطه برای نوشتن تساوی و مقدارش در یک خط است. یعنی این دو داده رشته ای به هم مربوط هستند. خروجی این دستور به صورت زیر است:

Key=Peter, Value=35
Key=Ben, Value=37
Key=Joe, Value=43

دوباره با مثال قبل برگردید. دقت کردید نقطه ای که قبل از متغیر x$ تعریف شده است برای x-value$ نیز تعریف شده است و به همین دلیل تمام این داده ها در هر خط کنار هم نمایش داده شده‌اند.

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

در این نوع آرایه ها مقدار هر خانه ارایه می تواند ارایه دیگری باشد.

روش تعریف ارایه دو بعدی :

مثال

در مثال زیر روش تعریف ارایه دو بعدی یعنی اینکه هر سطر ان خود ارایه یک بعدی دیگر است و نیز روش دسترسی به هر عنصر سطر اول این ارایه دو بعدی را مشاهده می نمائید

 <?php
// A two-dimensional array:
$cars = array
  (
  array("Volvo",100,96),
  array("BMW",60,59),
  array("Toyota",110,100)
  );
?>

 

echo $cars[0][0].": Ordered: ".$cars[0][1].". Sold: ".$cars[0][2]."<br>";

طبق قانون ارایه ها ، شماره گذاری اندیس عددی از صفر شروع می شود هم برای سطر ها و هم برای ستونها

ارایه می تواند از یک بعد تا چندین بعد داشته باشد
یعنی هر خانه ارایه خود ارایه ای باشد و هر خانه زیر ارایه خود ارایه ای دیگر باشد و همین طور تا  اخر یعنی پرانتزهای تعریف ارایه ها  تو در تو می شوند
مثال
در مثال زیر ما ارایه چند بعدی انجمنی یعنی اندیس رشته ای ، تعریف می کنیم

 $families = array
  (
  "Griffin"=>array
  (
  "Peter",
  "Lois",
  "Megan"
  ),
  "Quagmire"=>array
  (
  "Glenn"
  ),
  "Brown"=>array
  (
  "Cleveland",
  "Loretta",
  "Junior"
  )
  );

در زیر روش مشخص شدن اندیس هر سطر این ارایه را می بینیم :

 Array
(
[Griffin] => Array
  (
  [۰] => Peter
  [۱] => Lois
  [۲] => Megan
  )
[Quagmire] => Array
  (
  [۰] => Glenn
  )
[Brown] => Array
  (
  [۰] => Cleveland
  [۱] => Loretta
  [۲] => Junior
  )
)

اندیس سطر اول عبارت رشته ای Griffin بوده و اندیس ستونهای ان ۰ و یک و دو اند

families [Griffin][0]=PETER

 families [Griffin][1]=LOIS

 families [Griffin][2]=MEGAN

 

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

 echo "Is " . $families['Griffin'][2] .
" a part of the Griffin family?";

خروجی دستور بالا عبارت زیر خواهد بود

Is Megan a part of the Griffin family?

برچسب ها