توانایی خود را افزایش دهیم

فرهنگ و هنر
توانایی خود را افزایش دهیم

بسم الله الرحمن الرحیم

با سلام

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

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

طبقه بندی موضوعی
آخرین نظرات
دوشنبه, ۱۲ خرداد ۱۳۹۳، ۰۳:۲۶ ق.ظ

درس چهارم- آشنایی با آرایه ها

تا اینجا در زمانی که خواستیم مقداری برای مان نگهداری شود تا در طول برنامه از آن استفاده کنیم٬ این مقدار را درون متغیرها که خانه های خالی حافظه هستند، قرار دادیم. اما این متغیرها تنها قادرند که یک مقدار را برایمان ذخیره کنند؛ پس اگر خواستیم چندین مقدار را ذخیره کنیم چی؟

اینجاست که آرایه ها به کمک ما می آیند. در این درس به شرح آرایه ها و چگونگی استفاده از آنها برای ذخیره چندین متغیر می پردازیم.

 

آرایه ها
آرایه ها یک نوعی از متغیرها هستند که می توانند چند داده را در قالب یک نام ذخیره کنند. فرض کنید که می خواهید اسامی کارمندان یک شرکت را به طور موقت ذخیره کنید تا در طول برنامه از آنها بتوانید استفاده کنید.

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

هر آرایه از دو بخش تشکیل شده: نام آرایه و اندیس.

نام آرایه که مشخص است و در زمان ایجاد آن٬ خود برنامه نویس انتخاب می کند. اما اندیس، کلید یا مقداری است که به یکی از مقادیر ذخیره شده در آرایه اشاره می کند. مثلا وقتی که پنج مقدار را در آرایه ریختیم، برای شناختن هر کدام از این مقادیر یک اندیس منحصر به فرد وجود دارد که به مقدار خاصی اشاره می کند.

 

ساختار آرایه
پی اچ پی دو نوع آرایه را حمایت می کند٬ یکی آرایه با اندیس عددی٬ یعنی اندیس اشاره گر به مقدار عدد است و دیگری آرایه با اندیس کاراکتری یا کلمه ای که اندیس خود یک کاراکتر یا کلمه تعریف می شود. در زیر نمونه هایی از این دو نوع را می بینید:

$name[2]
$name[ ' staff ' ];

نکته ۱: قوانینی که برای نام گذاری متغیرها بیان شدند، برای آرایه ها هم برقرار هستند.

نکته ۲: به خاطر اینکه یک آرایه، مقادیر بیشماری را در خود نگه می دارد، طریقه چاپ آن با یک متغیر معمولی فرق دارد.

نکته ۳: پی اچ پی خود از آرایه های از قبل تعریف شده به نام متغیرهای فرا جهانی یا Super Global Variables استفاده می کند. نمونه هایی از این دست آرایه های از پیش تعریف شده را قبلا دیده اید. مثلا:

$_GET, $_POST, $_REQUEST ...

 

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

نوع اول
تعریف و دادن مقدار به آرایه در زمان ایجاد آن. به مثال زیر توجه کنید که ابتدا آرایه تعریف و همزمان بدان مقدار داده می شود:

$name[] = ' حمید ' ;
$name[] = ' سعید ' ;
$name[ ' staff3 ' ] = ' پیمان ' ;

در این حالت اندیس بطور خودکار از 0 تا ... به آرایه اضافه می شود، یعنی مقادیر برای فراخوانی باید با کلید خود خواسته شوند، و یا می توان از کلید کلمه ای استفاده کرد. توجه کنید:

$name[0]   // حمید  
$name[1]  //   سعید  
$name[' staff3 ']  //     پیمان 

حال مقدار نخستین آرایه با کلید 0 می شود 'حمید'، دومی می شود 'سعید' و سومی هم 'پیمان'. برای چاپ کردن این مقادیر هم می توانید به صورت یکی از روش های زیر عمل کنید:

echo $name[0] ;
echo $name[1] ;
echo $name[' staff3 '] ;
echo $name[0] . '  ' . $name[1] . '  ' . $name[' staff3 ']  ;

نوع دوم
در نوع دوم به جای تعریف یک آرایه به طور یکی یکی، می توانید با کمک تابع array() کل مقادیر را یکجا در آرایه قرار دهید که این قابلیت هم به چند شیوه قابل اجرا است. مانند:

$name = array ( ‘حمید  ’ ,  ‘ سعید ’ ,  ‘ پیمان ’) ;

خوب مقادیر به ترتیب با کلیدهای 0 و 1 و 2 وارد آرایه می شوند.

$name = array ( 1 => ‘حمید  ’ ,  ‘ سعید ’ ,  ‘ پیمان ’) ;

در این حالت ما عدد کلید شروع شونده را از 0 به 1 تغییر دادیم تا مقادیر با کلید 1 شروع به ذخیره شدن کنند. پس مقادیر به ترتیب با کلیدهای 1 و 2 و 3 وارد آرایه می شوند.

$name = array (' staff1' => 'حمید  '  , ' staff2' => ' سعید ' , 'staff3' => ' پیمان ' ) ;

در این حالت ما از کلید کلمه ای استفاده کردیم که به جای عدد، مقادیر با کلیدهایی که تعریف می کنیم وارد شوند. توجه کنید که در این حالت برای فراخوانی مقداری از آرایه باید نام کلید را بدانید؛ مثلا فرض کنید ما می خواهیم نام سعید را چاپ کنیم که باید به شیوه زیر باشد:

echo $name[ ' staff2 ' ] ;

نکته ۱: از تابع  array() می توانیم برای تعریف نخستین یک متغیر آرایه ای استفاده کنیم مانند:

$name = array();
$name[] = '  سعید ' ;

همانطور که می بینید در جمله ابتدایی، متغیر $name را به صورت یک آرایه تعریف کردیم و در جمله دوم بدان مقدار دادیم.

نکته ۲: از تابع range()  می توانیم برای ایجاد آرایه ای متشکل از یک سری اعداد پشت سر هم استفاده کنیم.

$number = range ( 1 , 20 );

در این حالت ما آرایه ای تعریف کردیم که اعداد 1 تا 20 را با کلید 0 تا 19 در خود جا داده است.

echo $number [0] ; // خروجی می شود  1
echo $number [10] ; // خروجی می شود   11
echo $number [19] ; // خروجی می شود   20

به خاطر شروع شدن کلید از 0، پس عدد 1 در آرایه ای با کلید 0 ذخیره می شود.

 

دسترسی به آرایه ها
در استفاده کردن از آرایه و چاپ آن دیدیم که این عمل چطور با دانستن کلید آرایه انجام شد. اما این راه فقط برای دسترسی به یک آرایه است. راه دیگری برای دسترسی همزمان به همه آرایه ها وجود دارد که از تابع foreach() استفاده می شود. ساختار این تابع به شکل زیر است:

foreach ( $array as $value ) {
//  دستورات برای انجام و استفاده از مقادیر
}

این تابع دارای دو پارامتر است که ابتدایی به نام آرایه شما اشاره دارد و دومی به تک تک مقادیر در آرایه. مثلا اگر بخواهیم اعدادی از 1 تا 20 را چاپ کنیم، می توانیم بنویسیم:

$number = range ( 1 , 20 ) ;
foreach ( $number as $num ) {
echo $num . '   ' ;
} //  1 2 3 4 5 ........ 20

دقت کنید که در زمان چاپ اعداد، بعد از هر عدد یک فاصله با کمک . '  ' گذاشتیم. علاوه بر این می توانیم در داخل ' <br /> ' بگذاریم که اعداد را در حالت ستونی چاپ کند:

echo $num . ' <br /> ' ;

نوع دیگر استفاده از این تابع گذاشتن کلید در آن است. توجه کنید:

$name = array (' staff1' => 'حمید  '  , ' staff2' => ' سعید ' , 'staff3' => ' پیمان ' ) ;
foreach ( $name as $key => $num ) {
echo $num . ' <br /> ' ;
}

 

مرتب کردن آرایه ها
برای مرتب کردن آرایه ها براساس حروف الفبا از تابع sort()  استفاده می شود. ما در پی اچ پی قادر هستیم که آرایه ها را براساس چند فاکتور مرتب کنیم.

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

$name = array (' staff1' => 'حمید  '  , ' staff2' => ' سعید ' , 'staff3' => ' پیمان ' ) ;
sort($name);
foreach ( $name as $key => $num ) {
echo $num . ' <br /> ' ;
}

نکته: در این حالت مرتب سازی با استفاده کردن از تابع sort()، این تابع کلیدهای وارد شده برای آرایه را پاک کرده و مجددا خود از 0 تا... کلیدگذاری می کند. پس اگر برای آرایه خود کلید کلمه ای انتخاب کردید، هرگز از این تابع استفاده نکنید. برای دیدن این تغییرات کافیست که مطابق زیر عمل کنید:

$name = array ('staff1' => 'سعید' , 'staff2' => ' حمید  ' , 'staff3' => '  پیمان '  ) ;
sort($name);
foreach ( $name as $key => $num ) {
echo $key . ' => ' . $num . ' <br /> ' ;
}

مشاهده می کنید که کلیدهای چاپی آنهایی که تعریف کردیم نیستند؟

 

مرتب کردن با حفظ کلیدها
برای مرتب کردن آرایه و نگهداشتن کلیدها می توانید از تابع  asort() استفاده کنید به گونه ای که این تابع کلیدهای شما را دست نخورده باقی می گذارد.

$name = array ('staff1' => 'سعید' , 'staff2' => ' حمید  ' , 'staff3' => '  پیمان '  ) ;
asort($name);
foreach ( $name as $key => $num ) {
echo $key . ' => ' . $num . ' <br /> ' ;
}

 

مرتب کردن براساس کلیدها
این حالت زمانی استفاده می شود که ما بخواهیم آرایه را براساس کلیدها و نه براساس مقادیر مرتب کنیم:

$name = array ('staff' => 'سعید' , 'manager' => ' حمید  ' , 'customer' => '  پیمان '  ) ;
ksort($name);
foreach ( $name as $key => $num ) {
echo $key . ' => ' . $num . ' <br /> ' ;
}

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

$name = array (  'staff1' => 'سعید' , 'staff2' => ' حمید  ' , 'staff3' => '  پیمان ' ) ;
print_r($name);
echo "<br />";
var_dump($name);

 

ساختار for و while
حلقه ها ساختاری در زبان برنامه نویسی هستند که به شما اجازه دسترسی به همه مقادیر را به طور مرتب می دهند. در قسمت قبلی ما از یک نوع این حلقه ها استفاده کردیم: foreach() یادتان هست!

دو نوع دیگر از حلقه ها که در اینجا معرفی می کنیم for و while هستند.

حلقه for
این نوع حلقه دارای سه پارامتر است که شامل نقطه شروع حلقه٬ شرط پایانی حلقه و شمارش اندیس یا کلید حلقه می شود.

for ( نقطه شروع   ; شرط پایانی   ;شمارش اندیس   )
{
// دستور
}

اجازه بدهید با یک مثال کارکرد for را بیشتر شرح دهیم. فرض کنید می خواهیم که از شماره ۱ تا ۱۰ را چاپ کنیم:

for ($i = 1 ; $i <= 10; $i++)
{
echo $i . ' <br /> ' ;
}

جمله ابتدایی پارامتر این حلقه 1 =  i است که همان اندیس شمارشگر ماست٬ بعد از آن شرط پایانی حلقه است که می گوید تا زمانی که اندیس کوچک تر یا برابر ۱۰ شود. در آخر هم شمارشگر که هر بار که حلقه اجرا می شود یکی به آن اضافه می کند.

نکته: مورد استفاده از این نوع حلقه زمانی است که ما تعداد تکرار حلقه را می دانیم. به طور مثال در قسمت قبل ما می دانستیم که می خواهیم از شماره 1 تا 10 را چاپ کنیم.

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

$i =1;
while ( $i <= 10 ){
print $i . '  ' ;
$i++;
}

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

$i = 1 ;
do {
print $i . '  ' ;
$i++;
} while ( $i <= 10 );   //  1 2 3 4 5 6 7 8 9 10

اگر در این مثال متغیر $i = 11 شود، یکبار این عدد چاپ می شود و بعد در شرط به خاطر برقرار نبودن شرط که باید کمتر از ۱۰  باشد٬ حلقه متوقف می شود.

$i = 11 ;
do {
print $i . '  ' ;
$i++;
} while ( $i <= 10 ); // 11

با به پایان رساندن این بخش ما مقدمات یادگیری اصول ابتدایی برای برنامه نویسی در زبان پی اچ پی را به پایان بردیم.

نکته ای که لازم می دانیم در اینجا ذکر کنیم این است که شما نیازی ندارید در این زمان تمام قسمت های قبلی را حفظ کنید، بلکه در طول دوره و با انجام مثال های بهتر و عملی و نزدیک تر به شیوه برنامه نویسی، در دنیای بیرون این اصول به طور خود به خود به مغز شما راه می یابند.

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

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

موافقین ۰ مخالفین ۰ ۹۳/۰۳/۱۲

نظرات  (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

کاربران بیان میتوانند بدون نیاز به تأیید، نظرات خود را ارسال کنند.
اگر قبلا در بیان ثبت نام کرده اید لطفا ابتدا وارد شوید، در غیر این صورت می توانید ثبت نام کنید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی