آژانس هواپیمایی
pop up

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

شروع موضوع توسط Mehdi ‏9 دسامبر 2005 در انجمن آموزش PHP به زبان فارسی

  1. Mehdi

    Mehdi مدیر بازنشسته

    تاریخ عضویت:
    ‏1 آگوست 2004
    نوشته ها:
    5,569
    تشکر شده:
    48
    محل سکونت:
    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

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

    مهدی صفری
     
  2. Mehdi

    Mehdi مدیر بازنشسته

    تاریخ عضویت:
    ‏1 آگوست 2004
    نوشته ها:
    5,569
    تشکر شده:
    48
    محل سکونت:
    Anywhere
    اگه وقتي نگاه ميكنيد يه نظر هم بديد بد نيست [​IMG]
     
  3. میلاد

    میلاد کاربر فعال

    تاریخ عضویت:
    ‏7 ژوئن 2005
    نوشته ها:
    1,802
    تشکر شده:
    4
    محل سکونت:
    Esfahan
    کارت انقدر خوب بید که آدم دلش نمیاد سوال کنه! [​IMG]
     
  4. carp3

    carp3 کاربر تازه وارد

    تاریخ عضویت:
    ‏15 آپریل 2005
    نوشته ها:
    1,321
    تشکر شده:
    1
    اگه همین جور ادامه بدیم پرشین تولز سرورش دان میکنه :D
     
  5. Parsa_361

    Parsa_361 کاربر فعال صفحات داینامیک کاربر فعال

    تاریخ عضویت:
    ‏5 آگوست 2005
    نوشته ها:
    889
    تشکر شده:
    10
    محل سکونت:
    Isfahan, php.ini
  6. carp3

    carp3 کاربر تازه وارد

    تاریخ عضویت:
    ‏15 آپریل 2005
    نوشته ها:
    1,321
    تشکر شده:
    1
  7. boxilink
  8. Mehdi

    Mehdi مدیر بازنشسته

    تاریخ عضویت:
    ‏1 آگوست 2004
    نوشته ها:
    5,569
    تشکر شده:
    48
    محل سکونت:
    Anywhere
    ايا ميدانيد ؟!! [​IMG]
    اگر ميزان بازديد اين صفحه به بيش از صد برسه آموزش بعدي را نيز خواهم داد [​IMG]
     
  9. mynobar

    mynobar Registered User

    تاریخ عضویت:
    ‏27 سپتامبر 2005
    نوشته ها:
    2,556
    تشکر شده:
    2
    آمار بازدید کنندگان این تاپیک از 100 نفر گذشته ها... ما بی صبرانه منتظر هستیم.
     
  10. Mehdi

    Mehdi مدیر بازنشسته

    تاریخ عضویت:
    ‏1 آگوست 2004
    نوشته ها:
    5,569
    تشکر شده:
    48
    محل سکونت:
    Anywhere
    ok قبول بيد
    كلاس فردا رو ميزنم فقط به خاطر تو
    سر كلاس دير ميروم فقط به خاطر تو
    قسمت هشتم امادست فقط به خاطر تو
     
  11. mynobar

    mynobar Registered User

    تاریخ عضویت:
    ‏27 سپتامبر 2005
    نوشته ها:
    2,556
    تشکر شده:
    2
    یه وقت بهت ضرر نزنیم ها :eek: ، اگه اینطوری باشه من اصلا راضی نبیدم.
     
  12. amnhak

    amnhak Registered User

    تاریخ عضویت:
    ‏23 ژوئن 2005
    نوشته ها:
    866
    تشکر شده:
    0
    محل سکونت:
    www.freedanload.com
    ای ول عالی بود! ادامه بدی عالی تری میشه!موفق باشی.........
     
  13. saalek

    saalek مدیر بازنشسته

    تاریخ عضویت:
    ‏24 می 2005
    نوشته ها:
    654
    تشکر شده:
    53
    محل سکونت:
    در پاي كوهپايه ها
    خيلي خوب بود. خسته نباشيد.
    .
     
  14. avajang.com .leftavajang.com.right
  15. بری باحاله

    بری باحاله کاربر تازه وارد

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

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

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

    Mehdi مدیر بازنشسته

    تاریخ عضویت:
    ‏1 آگوست 2004
    نوشته ها:
    5,569
    تشکر شده:
    48
    محل سکونت:
    Anywhere
    نه بابا كجا عكس منه
    خوب اگه كد كاربر رو ميدوني حله ديگه
    الان برو جديدترين اموزش رو بخون قسمت نهم
    اونجا يه نمونه اپلود كردن فايل رو گفتم ميتوني اسم فايل رو عوض كني موقع اپلود
     
  17. iransbs

    iransbs کاربر تازه وارد

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

    keyvan_itman کاربر تازه وارد

    تاریخ عضویت:
    ‏15 مارس 2006
    نوشته ها:
    118
    تشکر شده:
    0
    سلام
    ببخشید اگه این تاپیک رو نبش قبر کردم
    یه سرچ زدم برای آرایه, این تاپیک رو پیدا کرد.
    یه سوال داشتم
    کسی بلد نیست از خانه های آرایه ها حذف کنه؟؟
    شدید نیاز دارم
    اگه کسی بلد باشه لطف کنه بگه
    مرسی
     
  19. Mehdi

    Mehdi مدیر بازنشسته

    تاریخ عضویت:
    ‏1 آگوست 2004
    نوشته ها:
    5,569
    تشکر شده:
    48
    محل سکونت:
    Anywhere
    خوب مقدارشو چرا خالي نميكني؟؟؟
     
  20. keyvan_itman

    keyvan_itman کاربر تازه وارد

    تاریخ عضویت:
    ‏15 مارس 2006
    نوشته ها:
    118
    تشکر شده:
    0
    اخه با این کار count آرایه همون قدر باقی میمونه, اون موقع هم موقع چاپ مقادیر اونی که حذف شده خالی پرینت میشه.
     
  21. Mehdi

    Mehdi مدیر بازنشسته

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