در جلسات سیزدهم و چهاردهم، به شکلی مبسوط در مورد آرایههای ایندکسدار عددی و آرایههای انجمنی صحبت کردیم. در طی آموزش پی اچ پی (PHP) پیرامون مباحث مطرح شده، متوجه شدیم دو شکل آرگومان با نامهای کلید و مقدار تعریف میشوند. در واقع ایندکسهای سیستمی و دستی خود حکم پارامترهای کلیدی key را ایفا کرده و مقادیر نسبت داده شده به آن با نام value بهحساب میآیند.
در این جلسه میخواهیم به بررسی آرایههای چند بعدی پرداخته و برای هر کلید، بیش از یک مقدار اختصاص دهیم. همین خاصیت اصلیترین تفاوت کارکرد آرایههای چندبعدی با سایر آرایههای تعریف شده در آموزش PHP است. همراه ما باشید.
آرایههای چند بعدی در زبان برنامهنویسی php
در این بخش از آموزش پی اچ پی (PHP) میخواهیم به بررسی آرایههای چند بعدی بپردازیم. آرایههای Multidimensional Array یا همان چند بعدی، شامل یک یا چندین آرایه قابل تعریف در یک آرایه است. این مدل آرایهها دارای چندین ردیف و ستون بوده و از عمقی متفاوت برخوردار هستند، بهطوریکه ساختاری لایه لایه یا تو در تو دارند. با وجود این استفاده بیش از سه لایه متداول نبوده و معمولاً برنامهها را بر اساس همین مقدار میبندند.
در جلسة آموزش پی اچ پی رایگان سایت کدیاد نیز اینچنین بیان شده است که در آرایههای بیش از یک بعد، از مختصات استفاده کرده و ردیف و ستون را بهمنزلة جایگاه آن مقدار از آرایه میگیریم. پارامتر ایندکس در آرایههای چند بعدی، نشانگر مقداری است که برنامهنویس قصد دارد به خروجی ارسال کند؛ به همین علت است که در آرایههای دو بعدی از دو ایندکس استفاده کرده و در سه بعدی، از سه ایندکس و الی آخر! در ادامه به مثالی از آرایة دو بعدی پرداخته و پس از آن آرایهای سه بعدی را نیز مثال خواهیم زد.
نمایش آرایههای چند بعدی در قالب مختصات ردیفی-ستونی
آموزش آرایه دو بعدی در php
طبق آموزشهای داده شده در آموزش پی اچ پی به زبان ساده سایت کدیاد، آرایهای با دو بعد شامل دو ایندکس و دو سری اطلاعات است. به عبارتی از دو ستون و دو ردیف تشکیل یافته است. طبق نمودار نمایشداده شده بهخوبی میبینیم که هر عنصر در آرایههای دو بعدی شامل یک ردیف و یک ستون میشود. به سبب شروع هر ایندکس از شمارة صفر، مختصات آرایههای دو بعدی یا چند بعدی نیز با مختصات [0][0] شروع شده و بر اساس جایگاه هر مقدار، شمارهگذاری و آدرسدهی میشود.
بهعنوان مثال در نمونة بالا مشخص است که ردیف اول با ایندکس ردیفی 0، شامل چهار ستون است که خود از 0 تا 3 شمارهگذاری شدهاند؛ بنابراین مختصات مقادیر شامل:
Row 0 & column 0,1,2,3 è a[0][0], a[0][1], a[0][2], a[0][3]
میشود. در ردیفهای بعدی مقادیر دارای ردیف جدید شده و بهصورت زیر مختصاتدهی میشوند:
Row 1 & column 0,1,2,3 è a[1][0], a[1][1], a[1][2], a[1][3]
Row 2 & column 0,1,2,3 è a[2][0], a[2][1], a[2][2], a[2][3]
شرح نمونه مثال زده شده در جلسه آموزشی پانزدهم
حال در ادامه مثالی را که در دوره آموزش برنامه نویسی PHP بیان شده است را بررسی میکنیم:
$myf=array(array(“ mmd ”,20)
array(“ ali ” ,22)
echo $myf[0][0] . “age” . $myf[0][1] . “<br>”;
echo $myf[1][0] . “age” . $myf[1][1] . “<br>”;
خروجی:
Mmd age 20
Ali age 22
نمایش شماتیک آرایههای دو بعدی و ساختار مختصاتی آنها در php
در مثالی که جهت آموزش پی اچ پی آمده است، دیدیم که با تعریف آرایهای دو بعدی، اقدام به ارسال مختصات چهار آرگومان شامل دو متغیر نام و دو متغیر سن کردیم. از آنجایی که هر متغیر خود دارای ردیف و ستون مجزایی است، دستور آرایه به شکل تو در تو داده شده و در واقع آرایهای درون آرایة دیگر تعریف شده است. با این حساب خروجی، مقادیر متصل به ایندکسهای دو بعدی بوده و بهراحتی نمایش داده میشود.
حال بهدنبال ادامة آموزش پی اچ پی (PHP)، اگر قصد داشته باشیم یک ستون به ردیف اول آرایه دو بعدی خود به نام $myf اضافه کنیم، اینگونه عمل میکنیم:
$myf = array(array(“ mmd ”,20,180)
array(“ ali ” ,22)
);
echo $myf[0][0] . “age” . $myf[0][1] . “ size ”. $myf[0][2] . “<br>”;
echo $myf[1][0] . “age” . $myf[1][1] . “<br>”;
خروجی:
Mmd age 20 size 180
Ali age 22
دیدیم که نتیجه با چاپ مقدار اختصاص داده شده به مختصات ایندکس [0][2] بهپایان رسید.
آموزش آرایه سه بعدی در php
همانگونه که در مثال بالا دیدیم، آرایه دو بعدی خود از تعریف آرایهای درون آرایهای دیگر تشکیل شده بود؛ به همین علت است که مبنای آرایههای چند بعدی از آرایههای داخلی و تو در تو نشئت میگیرد. در واقع یک آرایة سه بعدی از دو آرایه داخلی و یک آرایة اصلی که در برگیرندة آن دوتای دیگر است، تعریف میشود.
در آموزش پی اچ پی (PHP) اینگونه گفته میشود که این زبان برنامهنویسی امکان تعریف تا ۵ لایه و حتی بیشتر را نیز داده است؛ اما با افزایش لایهها حساسیت کار بالا رفته و کدنویسی آن بهمراتب مشکلتر است.
چگونگی نمایش مختصات آرایه سه بعدی در php
در کدنویسی آرایههای چند بعدی میتوان از حلقة for استفاده کرده و به هر دو ایندکس مختصات اشاره کرد:
مثال:
$myf= array (array ("ali",22,180),
array("mmd",20,170),
array("mina",23,165),
array("mahsa",19,175)
);
for ($row = 0; $row < 4; $row++) {
echo "<p--><b>Row number $row</b><p></p>";
echo "<ul>";
for ($col = 0; $col < 3; $col++) {
echo "<li>".$myf[$row][$col]."</li>";
}
echo "</ul>";
}
?>
خروجی:
Row number 0
ali
22
180
Row number 1
mmd
20
170
Row number 2
mina
23
165
Row number 3
mahsa
19
175
در مثال بالا از آموزش پی اچ پی (PHP) بهخوبی آرایه سه لایه را مشاهده کردیم که چگونه مقدارهای مربوط به مختصات هر ایندکس را نمایش میدهد. در مثال گفته شده جهت آموزش PH، از تگهای html بهره برده شده است. در ادامه به نحوة استفاده و کارکرد این تگها اشاره کرده و تا حد ممکن به آموزش آنها خواهیم پرداخت.
توضیحی پیرامون دستورات HTML و استفاده از آنها در برنامهنویسی به زبان PHP
در کلاسهای آنلاین آموزش پی اچ پی رایگان سایت کدیاد، گریزی هرچند کوتاه اما مؤثر به دستورات کاربردی و مورد استفاده جهت کدنویسی برنامه به این زبان شده است.
مثال کدنویسی به زبان php با استفاده از دستورات html
تگهای <P> و </P>
این تگ بهمعنای پاراگراف بوده و هر آنچه را که فیمابین دو دستور قرار بگیرد را به خروجی میفرستد. مثل دستور:
<P>”hossein” </P>
که با خروجی همین اسم hossein تمام میشود.
تگهای <b>و </b>
این تگ بهمعنای بولد کردن عبارات داخل آن است. مانند این دستور:
<P><b> ”hossein” </b> </P>
که با خروجی همین اسم hossein همراه است. جهت استفاده از این دو تگ داخل دستورات php کافیست فرمت زیر را رعایت کنید و مجدداً خروجی بولد شدة hossein را خواهید دید:
<? php
<P><b> ”hossein” </b> </P>
?>
ترکیب تگهای <ul>، </ul> و تگهای <li>و </li>
هر عبارتی که فیمابین این تگها قرار بگیرد، دارای طبقهبندی بولت میشود. این دستور نمایشگر بولت و زیر مجموعههای آن درphp است:
<? php
<ul>
<li> “hossein”
<ul>
<li>
”hossein”
</li>
</ul>
</li>
</ul>
?>
خروجی:
- hossein
- hossein
در اتمام دستورات و گرفتن خروجی، خواهیم دید عبارات بهصورت بولتبندی طبقهبندی شده و نمایش داده میشود.
ادامة معرفی توابع آرایهای از جلسه قبل
در ادامة آموزش پی اچ پی به زبان ساده به معرفی تعدادی دیگر از توابع آرایهای قابل استفاده در آرایههای چندبعدی میپردازیم.
آموزش کار با تابع in_array() در زبان برنامهنویسی PHP
تابع array_in() کارکردی همانند تابع array_search() داشته و به جستجوی یک مقدار مشخص در آرایهای تعریف شده میپردازد. با ارسال آرگومان مورد نظر جهت جستجو، لازم است نام آرایه نیز مشخص شود. علاوه بر آن پارامتر نوع داده یا همان type بهشکل پیشفرض true خواهد بود. این کار باعث میشود در صورت پیدایش آن آرگومان در آرایة مذکور، پاسخ true به خروجی ارسال شده و اگر آرگومان مورد نظر یافت نشود، پاسخ نمایش داده شده false باشد.
استفاده از توابع آرایهای در زبان برنامهنویسی php
ذکر این نکته در آموزش پی اچ پی ضروری است که اگر متغیر مورد نظر، آرگومانی متنی یا رشتهای باشد و Type داده true قرار گرفته باشد، این جستجو به حروف بزرگ و کوچک حساس بوده و لازم است این نکته رعایت گردد. در ادامه ساختار و مثالی از این تابع را با یکدیگر مرور میکنیم:
in_array ( $value, $array , [$strict ] ); [$strict ]=typeètrue
در تابع in_array()، مقدار پارامتر ورودی با نام ($value) در آرایه ($array)جستجو شده و در صورت پیدایش، پیغام true نمایش داده میشود. به عبارت دیگر تابع in_array()، مقادیر مورد نظر را گرفته و آنها را در آرگومانهایی با همان اسم یا ایندکس قرار داده و مقایسه میکند. همانند آنچه در دوره آموزش برنامه نویسی PHPگفته شده است، برای کار با این توابع لازم است پارامترهای اجباری و اختیاری آن را بشناسیم.
دو پارامتر ($value) و ($array) دادههایی ضروری بودهاند و جهت کارکرد درست تابع مورد نیاز است. در حالیکه وجود آرگومان ($strict) اختیاری است و نبودش موجب عدم انجام کار تابع نمیشود. با استفاده از این پارامتر، افزون بر جستجوی خود متغیر، نوع آن نیز بررسی میگردد.
مثال:
نمونه مثال در مورد تابع in_array
طبق نمونه تمرین حل شده در جلسة پانزدهم از آموزش پی اچ پی (PHP) این تابع از میان دادههای آرایه $myf، متغیر ۲۵ را جستجو کرده و نوع آن را نیز نمایش میدهد. حال که پیشفرض تعیین شده برای آرگومان $strict، true است و داده مورد نظر ما عددی و int است، پاسخ bool(false) را بر میگرداند. در واقع این فرمان بهنوعی راستیآزمایی کرده و بررسی میکند که آیا نوع داده نیز شبیه به همان داده شده است یا خیر.
آموزش کار با تابع array_search() در زبان برنامهنویسی PHP
تابع array_search()، فانکشنی پرکاربرد و قابل استفاده در آرایههای سیستمی است که به صورت پیشفرض در کتابخانة زبان برنامهنویسی php قرار دارد. ساختار نوشتاری این تابع بهشکل زیر است:
array_search($value, $array ,[$strict]);
شرح کاربرد این تابع همانند آموزش پی اچ پی (PHP) داده شده در جلسه پانزدهم، آرایهای بدین صورت است که با گرفتن یک آرگومان ورودی، اقدام به جستجو در دادههای موجود کرده و در صورت یافتن آن پاسخ را بهصورت bool(true) بر میگرداند. کارکرد متغیر $strict نیز مانند نمونة مشابه خود در تابع in_array() است و جهت راستیآزمایی نوع داده استفاده میگردد. با کمک این متغیر، کلید متناظر به این داده true یا false باز گردانده میشود. در این تابع نیز وجود متغیرهای $valueو $array الزامی است.
<?php
$myf = array(“ali”,”mina”,”reza”,”mmd”);
$search = array_search(“mina”,”$myf”,true);
Var_dump($search);
?>
خروجی:
bool(true)
آموزش کار با تابع current() در زبان برنامهنویسی PHP
تابع current() در زبان برنامهنویسی PHP به اولین مقدار جاری اشاره میکند. این تابع کاری ندارد چه تعداد متغیر و مقدار داخل آرایه است؛ وظیفة آن نمایش مقداری جاری بوده که در صف ایستاده است. ساختار این تابع بسیار ساده بوده و صرفاً با گرفتن نام آرایه مورد نظر کار میکند:
current ( $array );
امکان استفاده از توابع کتابخانهای php در آرایههای چند بعدی
چگونگی کاربرد تابع current() در آموزش پی اچ پی (PHP) بدین صورت است که کلیة آرایههای مورد استفاده، همیشه دارای نشانهای داخلی هستند که به مقدار جاری موسوم به current اشاره میکند. این نکته باعث شده تا تابع فوق بر روی ارسال و درج اولین المان جاری تنظیم شود.
در این تابع ارسال نام آرگومان $array بهعنوان فیلدی اجباری بوده و جهت شناسایی آرایة مورد نظر، ضروری است. نکتة قابل توجه در این تابع آن، عدم جابهجایی اشارهگر در آرایههای متصل به این تابع است. توابع دیگری همچون next()، end()، reset() و key() به همین اشارهگر مرتبط هستند:
مثال:
<?php
$myf = array(“ali”,”mina”,”reza”,”mmd”);
eco current($myf);
?>
خروجی:
ali
آموزش کار با تابع next() در زبان برنامهنویسی PHP
به گام بعدی آموزش پی اچ پی (PHP) میرسیم. تابع next() همانگونه که از نامش پیداست به یک خانه جلوتر اشاره میکند. در واقع اشارهگر در این تابع، خانه بعدی را برای چاپ در خروجی ارسال میکند. ساختار دستوری این تابع به شکلی ساده است:
next ( $array );
کافی است نام آرایه ارسال شود تا تابع وظیفة مورد نظر را بهانجام برساند. طبق آنچه در جلسات آموزش پی اچ پی (PHP) نیز بیان شده است، این تابع به سراغ آرگومان جاری بعدی که پوینتر به آن اشاره دارد، رفته و در صورتیکه آرگومان بعدی وجود نداشت پیغام false را ارسال میکند. در این تابع نیز پارامتر $array، متغیری اجباری است.
برای فهم بهتر مطالب حوزة برنامهنویسی به زبان php، از نمونههای بسیاری استفاده کنید.
مثال:
<?php
$myf = array(“ali”,”mina”,”reza”,”mmd”);
eco next($myf);
eco next($myf);
?>
خروجی:
mina reza
آموزش کار با تابع reset() در زبان برنامهنویسی PHP
تابع reset() در زبان برنامهنویسی PHP اشارهگر را در هرجایی که باشد، به اولین مقدار آرایه میآورد. ساختار این تابع هم مانند نمونههای قبلی بسیار ساده بوده و با نام آرایه مورد نظر کار میکند. همچنین این آرگومان، متغیر اجباری است. تابع reset() در آموزش پی اچ پی (PHP) اشارهگر داخلی هر آرایه نام برده شده در دستور فانکشن را به اولین مقدار بازگردانده و آن را به خروجی ارسال میکند. اگر المان بعدی وجود نداشته یا خالی باشد، مقدار برگردانده شده false است.
مثال:
<?php
$myf = array(“ali”,”mina”,”reza”,”mmd”);
eco reset($myf);
?>
خروجی:
ali
آموزش کار با تابع end() در زبان برنامهنویسی PHP
کارکرد تابع end() بسیار واضح بوده و اشارهگر به آخرین المان موجود در آرایه اشاره میکند. ساختار این تابع نیز همانند موارد قبلی صرفاْ شامل آرگومان $array بوده که ارسال آن الزامی میشود. با استفاده از این فرمان آخرین المان از آرایه استخراج شده و بهخروجی ارسال میشود.
مثال:
<?php
$myf = array(“ali”,”mina”,”reza”,”mmd”);
eco end($myf);
?>
خروجی:
mmd
استفاده از تابع key() در زبان برنامهنویسی PHP
آموزش کار با تابع key() در زبان برنامهنویسی PHP
طبق آموزش پی اچ پی (PHP) گفته شده، وظیفة تابع key() یافتن و اتصال المان کلیدی به مقدار مورد نظر خود است. ساختار دستوری این تابع نیز صرفاً با نام آرایه کار میکند که البته آرگومانی اجباری است.
key ( $array );
تابع key()کلید مقدار عضو در آرایه مورد نظر را از محل پوینتر داخلی جاری یا همان مکان قرارگیری اشارهگر نشان داده و بهخروجی میفرستد. به بیانی دیگر تابع key() مقادیر یک آرایه را گرفته و آنها را در پارامترهایی با همان ایندکس مرتبط با خودشان در خروجی قرار میدهد. در صورتیکه این کار بهدرستی انجام نشود، پاسخ برگردانده شده false خواهد بود.
مثال:
<?php
$myf = array(“ali”,”mina”,”reza”,”mmd”);
eco end($myf);
eco key($myf);
?>
خروجی:
mmd3
تمرین جلسة آینده
صورت تمرین برای جلسة آینده
طبق آنچه در جلسة آموزشی پانزدهم پیرامون توابع، آرایههای چند بعدی و بالأخص دستورات html بهکار گرفته شده در کدنویسی php گفته شده است، تمرین فوق را حل کرده و با پاسخ آن در جلسة آینده مقایسه کنید. این تمرین مچموعهای از آموزههای قبلی و جلسه فوق را شامل شده و محک بسیار خوبی برای میزان یادگیری دانشجویان است.
جمعبندی
در جلسه پانزدهم از سری دورههای آموزش پی اچ پی (PHP) به شرح کاملی از آرایههای چند بعدی اعم از دو بعدی، سه بعدی و غیره پرداخته و نحوة کار با آنها را یاد گرفتیم. همچنین از اهمیت استفاده از دستورات html در برنامهنویسی php و تمیزی نتیجه کار در خروجی، آگاه شدیم.
این جلسه را با معرفی و نوع کار توابع آرایهای پرکاربرد در آرایههای Multidimensional Array بهپایان رسانده و در جلسة آینده با جمعبندی مبحث آرایهها، به قسمت آموزش مقدماتی برنامهنویسی با زبان php پایان میدهیم. لازم به تکرار است که تنها عامل موفقیت در هر کاری، تلاش و تمرین است. موفق باشید.
قسمت قبلی آموزش رایگان php :
قسمت بعدی آموزش رایگان php
یا جهت مشاهده ویدیوهای اموزشی آموزش رایگان پی اچ پی وارد این صفحه شوید.