برگزیده های پرشین تولز

اموزش پي اچ پي(آرایه ها) - قسمت هفتم

Mehdi

مدیر بازنشسته
تاریخ عضویت
1 آگوست 2004
نوشته‌ها
5,602
لایک‌ها
49
محل سکونت
Anywhere
سلام
دوست دارم قبل از اينكه شروع به يادگيري درس جديد بكنيم يه مثال با فانكشن رو نگاه كنيد

PHP:
<?php
function fonts($txt,$siz)
{
print "<font size=$siz >$txt";
}
fonts("salam",5);
fonts("khoobi",10);
 ?>
خيلي ساده و كاربردي !
خوب رسيديم به Array يا همون آرايه ها : آرايه ها در واقع مانند يك ظرف هستن كه ميتونيم چندين مقدار رو توش قرار بديم و سپس از توي ظرف مقاديرمون رو يا مقدار مورد نظرمون رو برداريم ويكي از پركاربرد ترين دستورات در همه زبانها بشمار مياد
در ضمن ترتيب آرايه ها از صفر شروع ميشه
براي مثال :

Array index value
0 Mehdi
1 Asef
2 tsotodeh
3 knowhow
4 carp
بزاريد چندين مقدار رو در يك مقدار ديگر ذخيره كنيم :
PHP:
$users=array("Mehdi","Asef","tsotodeh","knowhow","carp");

در اينجا اگه بخواهيم مقدار Asef رو چاپ كنيم كافيه بنويسيم :
PHP:
Print "$users[1]";

و براي اضافه كردن آرايه جديد ميتونيم از دستور زير استفاده كنيم
PHP:
$users[]="azemati";
وبراي صدا كردن فقط انديس يا ايندكسش رو صدا بزنيم .

در ضمن ميتونيم خودمون هم ايندكس گزاري كنيم يعني بجاي 0 – 1- 2 – 3 - .. .. خودمون حروف بزاريم براي مثال به كد زير توجه كنيد :
PHP:
$user = array (name=>"Asef",job=>"Programming",age=>24,
"skill"=>"everyThing");

خوب حالا براحتي هركدوم رو كه بخواهيم ميتونيم صدا بزنيم :
PHP:
Print"$user[name]";
Or
Print"$user[job]";

همونطور كه ديديد در قسمت تعريف كردن ارايه ها حروف را در داخل گيومه قرار ميديم و قرار دادن اعداد اجباري نيست و هم ميتونن داخل گيومه قرار بگيرن هم نگيرن .
همچنين ميتونيم متغيير هاي داخل ارايمون رو مقدار دهي كنيم براي مثال :
PHP:
$user[name]="azemati";
$user[job]="webmaster";
و براي تعريف كردن چندين ارايه با چندين مقدار به اين صورت عمل ميكنيم :

PHP:
$user = array (array(name=>"Asef",job=>"Programming",age=>24,
"skill"=>"everyThing"),array(name=>"mehdi",job=>"Programming",age=>18,
"skill"=>"noThing"),array(name=>"daftarkhatereh",job=>"Programming",age=>24,
"skill"=>"everyThing")    );

و براي صدا كردن مقداري خاص به اين شكل عمل ميكنيم :
PHP:
print $user[0][job];
//Print "Programming"

براي پي بردن به تعداد مقادير يك ارايه ميتوانيد از دستور
Print count($user);
استفاده كنيد . ولي دقت كنيد كه در دستور كانت مقدار ايندكس ما از صفر شروع نميشه بلكه از يك شروع ميشه براي مثال براي دسترسي به مقداري با استفاده از كانت به اين صورت عمل ميكنيم :
PHP:
<?php
$users=array("a","b","c","d","e");
print $users[count($users)− 1];
//Print 5
?>
كه در اين كد اخرين مقدار يعني حرف اي را چاپ ميكنه !
ارايه ها را به شكل هاي گوناگوني ميتوان استفاده كرد و كاربرد بسيار زيادي دارند
دستور ديگري كه ميخواهيم اشنا بشيم دستور Array_merge() هستش كه با مثالي اشنا ميشيم :
PHP:
<?php
$first = array("a", "b", "c");
$second = array(1,2,3);
$third = array_merge( $first, $second );
foreach ( $third as $val )
{
print "$val<BR>";
}
?>
در اين مثال ايم كد اين متغيير هاي اول و دوم را با هم تركيب ميكنه و در متغيير سوم قرار ميده
اما دستور foreach مثل دستور for عمل ميكنه با اين تفاوت كه در اينجا مياد متغيير سوم رو در متغيير جديدي ميزاره و اون رو چاپ ميكنه شكل كلي اين دستور به اين صورت هستش :

PHP:
foreach( $array as $temp )
{
//...
}
براي مرتب كردن يك ارايه از دستور sort استفاده ميكنيم مانند مثال
PHP:
<?php
$an_array = array("x","a","f","c");
sort( $an_array);
foreach ( $an_array as $var )
{
print "$var<BR>";
}
?>
بديهي است كه با اعداد هم ميتوانيم همچين كاري رو بكنيم
همونطور كه ديديد با دستور sort(); ميتونيم مقادي يك ارايه رو مرتب كنيم. در مثال بالا در خروجي حروف به صورت مرتب شده نمايش داده ميشوند .
دستور asort(); هم داريم كه بر اساس مقادير ارايه ها انها را مرتب ميكنه باز به مثالي ديگر توجه كنيد :
PHP:
<?php
$first = array("first"=>5,"second"=>2,"third"=>1);
asort( $first );
foreach ( $first as $key => $val )
{
print "$key = $val<BR>";
}
?>




كه در خروجي اين چنين چاپ ميشود :
third = 1
second = 2
first = 5
در دستور بالا همونطور كه ديد بر حسب مقادير مرتب شد ولي اگر بخواهيم بر حسب ايندكسي كه ميدهم مرتب بشه ميتونيم از دستور ksort(); استفاده كنيم
PHP:
<?php
$first = array("x"=>5,"a"=>2,"f"=>1);
ksort( $first );
foreach ( $first as $key => $val )
{
print "$key = $val<BR>";
}
?>
كه در خروجي چاپ ميكنه
a = 2
f = 1
x = 5

اين بخش نيز به پايان رسيد
منتظر نظرات شما عزيزان هستم.
-----

مهدی صفری
 

Mehdi

مدیر بازنشسته
تاریخ عضویت
1 آگوست 2004
نوشته‌ها
5,602
لایک‌ها
49
محل سکونت
Anywhere
اگه وقتي نگاه ميكنيد يه نظر هم بديد بد نيست
66.gif
 

میلاد

کاربر فعال
کاربر فعال
تاریخ عضویت
7 ژوئن 2005
نوشته‌ها
1,810
لایک‌ها
4
سن
38
محل سکونت
Esfahan
کارت انقدر خوب بید که آدم دلش نمیاد سوال کنه!
68.gif
 

carp3

کاربر تازه وارد
تاریخ عضویت
15 آپریل 2005
نوشته‌ها
1,318
لایک‌ها
1
سن
94
من هم همین آرزو رو برات میکنم !
 

Mehdi

مدیر بازنشسته
تاریخ عضویت
1 آگوست 2004
نوشته‌ها
5,602
لایک‌ها
49
محل سکونت
Anywhere
ايا ميدانيد ؟!!
112.gif

اگر ميزان بازديد اين صفحه به بيش از صد برسه آموزش بعدي را نيز خواهم داد
39.gif
 

mynobar

Registered User
تاریخ عضویت
27 سپتامبر 2005
نوشته‌ها
2,556
لایک‌ها
2
سن
42
آمار بازدید کنندگان این تاپیک از 100 نفر گذشته ها... ما بی صبرانه منتظر هستیم.
 

Mehdi

مدیر بازنشسته
تاریخ عضویت
1 آگوست 2004
نوشته‌ها
5,602
لایک‌ها
49
محل سکونت
Anywhere
ok قبول بيد
كلاس فردا رو ميزنم فقط به خاطر تو
سر كلاس دير ميروم فقط به خاطر تو
قسمت هشتم امادست فقط به خاطر تو
 

mynobar

Registered User
تاریخ عضویت
27 سپتامبر 2005
نوشته‌ها
2,556
لایک‌ها
2
سن
42
به نقل از mehdvirus :
ok قبول بيد
كلاس فردا رو ميزنم فقط به خاطر تو
سر كلاس دير ميروم فقط به خاطر تو
قسمت هشتم امادست فقط به خاطر تو
یه وقت بهت ضرر نزنیم ها :eek: ، اگه اینطوری باشه من اصلا راضی نبیدم.
 

amnhak

Registered User
تاریخ عضویت
23 ژوئن 2005
نوشته‌ها
867
لایک‌ها
0
سن
38
محل سکونت
www.freedanload.com
ای ول عالی بود! ادامه بدی عالی تری میشه!موفق باشی.........
 

بری باحاله

کاربر تازه وارد
تاریخ عضویت
19 جولای 2003
نوشته‌ها
41
لایک‌ها
0
اقا مهدی دوتا موضوع هست... اول اینکه این عکسی که گذاشتی مال خودت نیست نه؟ دوم اینکه یه سوال داشتم ... قبل از اینکه سوالم رو بپرسم خیلی باید تشکر کنم از مقاله هایی که گذاشتی اینجا راجع به پی اپ پی... من خواستم یه جا طراحی که یه سری اطلاعات بگیرم از یه عده کاربر. مثلا دانشجو هایی که باید تمرین تحویل بدن. اول اطلاعاتشون رو وارد کنن و یه رزومه هم بفرستن برام. راجع به اطلاعات گرفتن مشکلی نیست... یه دیتابیس فایلی درست کردم که خوبم کار میکنه... خیلی هم راحته... فقط راجع به رزومه مشکل دارم... می خوام فایلهاشون رو که مثلا پی دی اف هستن رو اپلود کنن، حالا روی سرور یا به هر نحوی که میشه... فقط میخوام مشخص باشه کدوم فایل مال کیه... مثلا فایل با کد کاربر سیو بشه، حالا هر جایی که میشه... بلد نیستم. به ذهنم رسید که با همون پی اچ پی ایمیلش کنم به خودم ولی بلد نیستم اتچمنت به ایمیل اضافه کنم و بفرستم... میشه یه راهی پیش پای من بذاری؟ ممنونم

خلاصه: می خوام یه عدع کاربر فایلاشون رو اپلود کنن، حالا خواه روی سرور من یا به هر نحوی دیگه که شما فک میکنین میشه...

لطفا منو کمک کنین... خیلی متشکر میشم...
 

Mehdi

مدیر بازنشسته
تاریخ عضویت
1 آگوست 2004
نوشته‌ها
5,602
لایک‌ها
49
محل سکونت
Anywhere
نه بابا كجا عكس منه
خوب اگه كد كاربر رو ميدوني حله ديگه
الان برو جديدترين اموزش رو بخون قسمت نهم
اونجا يه نمونه اپلود كردن فايل رو گفتم ميتوني اسم فايل رو عوض كني موقع اپلود
 

iransbs

کاربر تازه وارد
تاریخ عضویت
3 می 2005
نوشته‌ها
471
لایک‌ها
0
محل سکونت
ایران، مازندارن، ساری
عزیز منم پس یه نظر بدم
دستت درد نکنه انشاالله پیر بشی
فقط اگر ممکنه یکم بیشتر درباره array ها بگو منظورم تابع های دیگه هست
چون من یه مطلبی تویه iranphp خوندم خیلی بهم بر خورد گفتم بهتره بیشتر درباره آرایه ها بدونم
 

keyvan_itman

کاربر تازه وارد
تاریخ عضویت
15 مارس 2006
نوشته‌ها
122
لایک‌ها
2
سلام
ببخشید اگه این تاپیک رو نبش قبر کردم
یه سرچ زدم برای آرایه, این تاپیک رو پیدا کرد.
یه سوال داشتم
کسی بلد نیست از خانه های آرایه ها حذف کنه؟؟
شدید نیاز دارم
اگه کسی بلد باشه لطف کنه بگه
مرسی
 

Mehdi

مدیر بازنشسته
تاریخ عضویت
1 آگوست 2004
نوشته‌ها
5,602
لایک‌ها
49
محل سکونت
Anywhere
خوب مقدارشو چرا خالي نميكني؟؟؟
 

keyvan_itman

کاربر تازه وارد
تاریخ عضویت
15 مارس 2006
نوشته‌ها
122
لایک‌ها
2
به نقل از mehdvirus :
خوب مقدارشو چرا خالي نميكني؟؟؟
اخه با این کار count آرایه همون قدر باقی میمونه, اون موقع هم موقع چاپ مقادیر اونی که حذف شده خالی پرینت میشه.
 

Mehdi

مدیر بازنشسته
تاریخ عضویت
1 آگوست 2004
نوشته‌ها
5,602
لایک‌ها
49
محل سکونت
Anywhere
خيلي خوب پس اينكارو بكن
PHP:
$array=array("panj","chahar","see","doo","yek");
unset($array[2]);
$array = array_values($array);
خوب اينجا ما سومين ارايمون رو حذف كرديم و براي اينكه ايندكس ها مرتب بشه خط سوم رو نوشتيم :D
 
بالا