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

PDA

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


Mehdi
12-09-2005, 10:15 AM
سلام
دوست دارم قبل از اينكه شروع به يادگيري درس جديد بكنيم يه مثال با فانكشن رو نگاه كنيد

<?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
بزاريد چندين مقدار رو در يك مقدار ديگر ذخيره كنيم :
$users=array("Mehdi","Asef","tsotodeh","knowhow","carp");

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

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

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

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

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

$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") );

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

براي پي بردن به تعداد مقادير يك ارايه ميتوانيد از دستور
Print count($user);
استفاده كنيد . ولي دقت كنيد كه در دستور كانت مقدار ايندكس ما از صفر شروع نميشه بلكه از يك شروع ميشه براي مثال براي دسترسي به مقداري با استفاده از كانت به اين صورت عمل ميكنيم :
<?php
$users=array("a","b","c","d","e");
print $users[count($users)− 1];
//Print 5
?>
كه در اين كد اخرين مقدار يعني حرف اي را چاپ ميكنه !
ارايه ها را به شكل هاي گوناگوني ميتوان استفاده كرد و كاربرد بسيار زيادي دارند
دستور ديگري كه ميخواهيم اشنا بشيم دستور Array_merge() هستش كه با مثالي اشنا ميشيم :
<?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 عمل ميكنه با اين تفاوت كه در اينجا مياد متغيير سوم رو در متغيير جديدي ميزاره و اون رو چاپ ميكنه شكل كلي اين دستور به اين صورت هستش :

foreach( $array as $temp )
{
//...
}
براي مرتب كردن يك ارايه از دستور sort استفاده ميكنيم مانند مثال
<?php
$an_array = array("x","a","f","c");
sort( $an_array);
foreach ( $an_array as $var )
{
print "$var<BR>";
}
?>
بديهي است كه با اعداد هم ميتوانيم همچين كاري رو بكنيم
همونطور كه ديديد با دستور sort(); ميتونيم مقادي يك ارايه رو مرتب كنيم. در مثال بالا در خروجي حروف به صورت مرتب شده نمايش داده ميشوند .
دستور asort(); هم داريم كه بر اساس مقادير ارايه ها انها را مرتب ميكنه باز به مثالي ديگر توجه كنيد :
<?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
$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
12-09-2005, 10:55 PM
اگه وقتي نگاه ميكنيد يه نظر هم بديد بد نيست http://asefsoft.com/qsimages/66.gif

میلاد
12-09-2005, 11:33 PM
کارت انقدر خوب بید که آدم دلش نمیاد سوال کنه! http://asefsoft.com/qsimages/68.gif

carp3
12-10-2005, 03:18 PM
اگه همین جور ادامه بدیم پرشین تولز سرورش دان میکنه :D

Parsa_361
12-10-2005, 03:51 PM
کارت خیلی ارزش داره !

موفق باشی ;)

carp3
12-10-2005, 04:00 PM
من هم همین آرزو رو برات میکنم !

Mehdi
12-11-2005, 09:47 PM
ايا ميدانيد ؟!! http://asefsoft.com/qsimages/112.gif
اگر ميزان بازديد اين صفحه به بيش از صد برسه آموزش بعدي را نيز خواهم داد http://asefsoft.com/qsimages/39.gif

mynobar
12-20-2005, 07:29 PM
آمار بازدید کنندگان این تاپیک از 100 نفر گذشته ها... ما بی صبرانه منتظر هستیم.

Mehdi
12-20-2005, 07:59 PM
ok قبول بيد
كلاس فردا رو ميزنم فقط به خاطر تو
سر كلاس دير ميروم فقط به خاطر تو
قسمت هشتم امادست فقط به خاطر تو

mynobar
12-20-2005, 10:00 PM
ok قبول بيد
كلاس فردا رو ميزنم فقط به خاطر تو
سر كلاس دير ميروم فقط به خاطر تو
قسمت هشتم امادست فقط به خاطر تو
یه وقت بهت ضرر نزنیم ها :eek: ، اگه اینطوری باشه من اصلا راضی نبیدم.

amnhak
12-20-2005, 11:27 PM
ای ول عالی بود! ادامه بدی عالی تری میشه!موفق باشی.........

saalek
12-29-2005, 04:40 AM
خيلي خوب بود. خسته نباشيد.
.

بری باحاله
12-29-2005, 05:15 PM
اقا مهدی دوتا موضوع هست... اول اینکه این عکسی که گذاشتی مال خودت نیست نه؟ دوم اینکه یه سوال داشتم ... قبل از اینکه سوالم رو بپرسم خیلی باید تشکر کنم از مقاله هایی که گذاشتی اینجا راجع به پی اپ پی... من خواستم یه جا طراحی که یه سری اطلاعات بگیرم از یه عده کاربر. مثلا دانشجو هایی که باید تمرین تحویل بدن. اول اطلاعاتشون رو وارد کنن و یه رزومه هم بفرستن برام. راجع به اطلاعات گرفتن مشکلی نیست... یه دیتابیس فایلی درست کردم که خوبم کار میکنه... خیلی هم راحته... فقط راجع به رزومه مشکل دارم... می خوام فایلهاشون رو که مثلا پی دی اف هستن رو اپلود کنن، حالا روی سرور یا به هر نحوی که میشه... فقط میخوام مشخص باشه کدوم فایل مال کیه... مثلا فایل با کد کاربر سیو بشه، حالا هر جایی که میشه... بلد نیستم. به ذهنم رسید که با همون پی اچ پی ایمیلش کنم به خودم ولی بلد نیستم اتچمنت به ایمیل اضافه کنم و بفرستم... میشه یه راهی پیش پای من بذاری؟ ممنونم

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

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

Mehdi
12-29-2005, 07:25 PM
نه بابا كجا عكس منه
خوب اگه كد كاربر رو ميدوني حله ديگه
الان برو جديدترين اموزش رو بخون قسمت نهم
اونجا يه نمونه اپلود كردن فايل رو گفتم ميتوني اسم فايل رو عوض كني موقع اپلود

iransbs
12-31-2005, 06:03 PM
عزیز منم پس یه نظر بدم
دستت درد نکنه انشاالله پیر بشی
فقط اگر ممکنه یکم بیشتر درباره array ها بگو منظورم تابع های دیگه هست
چون من یه مطلبی تویه iranphp خوندم خیلی بهم بر خورد گفتم بهتره بیشتر درباره آرایه ها بدونم

keyvan_itman
04-17-2006, 03:42 PM
سلام
ببخشید اگه این تاپیک رو نبش قبر کردم
یه سرچ زدم برای آرایه, این تاپیک رو پیدا کرد.
یه سوال داشتم
کسی بلد نیست از خانه های آرایه ها حذف کنه؟؟
شدید نیاز دارم
اگه کسی بلد باشه لطف کنه بگه
مرسی

Mehdi
04-17-2006, 04:18 PM
خوب مقدارشو چرا خالي نميكني؟؟؟

keyvan_itman
04-17-2006, 04:55 PM
خوب مقدارشو چرا خالي نميكني؟؟؟
اخه با این کار count آرایه همون قدر باقی میمونه, اون موقع هم موقع چاپ مقادیر اونی که حذف شده خالی پرینت میشه.

Mehdi
04-17-2006, 11:05 PM
خيلي خوب پس اينكارو بكن

$array=array("panj","chahar","see","doo","yek");
unset($array[2]);
$array = array_values($array);

خوب اينجا ما سومين ارايمون رو حذف كرديم و براي اينكه ايندكس ها مرتب بشه خط سوم رو نوشتيم :D