آخـــر الـــمـــشـــاركــــات

دردشة وتعليله وسواليف.. » آخر مشاركة: عاشق الحصن بريد الاعضاء » آخر مشاركة: محمد العزام اهلا بكم ..رمضان كريم » آخر مشاركة: حسان القضاة شو عم تسمع هلا » آخر مشاركة: حسان القضاة ما هو سبب تواجدك في المنتدى والى اي حدّ يستمر او ينتهي إنتسابك له ؟ » آخر مشاركة: قلعتي أبدية مرحبا » آخر مشاركة: محمد العزام " أميــــرةُ قـوسِ النَّصـــــر" » آخر مشاركة: قلعتي أبدية ~ إبريـــــــــــــــــل ~ » آخر مشاركة: حسان القضاة اسئلة مهمة بالفوتوشوب في المطابع 2019 » آخر مشاركة: المصمم يزن جبريل صاحب المركز الاول فى مجال تنزيل الملفات كامل مدي الحياة IDM 6.32 » آخر مشاركة: siiin همسات وأشوق » آخر مشاركة: حسان القضاة ""أيلـول""... » آخر مشاركة: قلعتي أبدية تبليغ عن رسالة زائر بواسطة راشد مرشد » آخر مشاركة: أميرة قوس النصر اشتقنالكم » آخر مشاركة: Mahmoud Zaben تُراهات ما قبل النوم ... » آخر مشاركة: قلعتي أبدية شو مزاجك اليوم... » آخر مشاركة: قلعتي أبدية قبول بلاغ عطل ثلاجات كلفينيتور 01092279973 & 0235700997 وكيل كلفينيتور (م .الجديدة) » آخر مشاركة: الوكيل1 قبول بلاغ عطل ثلاجات هوفر 01154008110 & 0235699066 وكيل هوفر (م.6اكتوبر) » آخر مشاركة: الوكيل1 قبول بلاغ عطل ثلاجات جنرال اليكتريك 01207619993 & 0235700997 وكيل جنرال اليكتريك (الز » آخر مشاركة: الوكيل1 قبول بلاغ عطل ثلاجات كاندى 0122026130 & 0235682820 وكيل كاندى (الهرم) » آخر مشاركة: الوكيل1
+ الرد على الموضوع
النتائج 1 إلى 4 من 4

الموضوع: [دورة php - الدرس الخامس عشر] - الجزء الثالث : دوال المصفوفات

  1. #1
    عضو مؤسس الصورة الرمزية Sc®ipt
    تاريخ التسجيل
    Nov 2008
    الدولة
    There's no place like 127.0.0.1
    العمر
    36
    المشاركات
    4,003

    Q (14) [دورة php - الدرس الخامس عشر] - الجزء الثالث : دوال المصفوفات

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



    السلام عليكم ,, نعود اليوم اليكم بدرس جديد استكمالا لدورة الـ php التي كنا قد وصلنا بدراستها الى موضوع المصفوفات و قد تحدثنا في الدرسين السابقين عن المصفوفات و انواعها الرقمية و الحرفية اي المركبة و المصفوفات المتعددة الأبعاد و كيفية تعريف هذه الأنواع و بإمكانكم الإطلاع على دروس الدورة عبر الفهرس التالي :




    اما في درس اليوم سوف نتحدث دوال المصفوفات و هي من اهم الأشياء التي يجب ان يعرف مبرمج ال php التعامل معها لأنها سوف تريح المبرمج من برمجة اضافات كثيره لمشروعه و من هذه الدوال ,, دوال ترتيب المصفوفات بأنواعها و دوال الترتيب العكسي للمصفوفات بأنواعها و ايضا سوف نتعرف على دوال استكشاف المصفوفات ,, و ستلاحظ ان الدوال كثيرة لكن الأهم من حفظها هو فهمها و فهم عملها و الآن لنبدأ على بركة الله ....

    اولا : ترتيب المصفوفات الطبيعي

    قبل ان نبدأ بدوال ترتيب المصفوفات يجب ان لا نستهين بهذه الدوال رغم بساطتها لأنها مفيدة جدا للمبرمجين فمثلا في كثير من المواقع تجد ان هناك خيار للبحث و بجانب هذا الخيار سوف تجد انه يوجد خيارات للترتيب حسب الأسم , العمر , الرقم , .... الخ , وهذه الدوال هي التي تكفل القيام بإخراج نتائج البحث بهذه الصورة .

    والآن لنبدأ ...

    1 - دالة ترتيب المصفوفات العامة ()sort

    تستخدم هذه الدالة للترتيب حسب الأسبقية اي تصاعديا اي انه
    في حالة الأرقام فإن الترتيب يكون من الصفر 0 و صعودا الى اكبر رقم
    و في حالة الأحرف العربية من حرف (أ) و وصولا الى حرف (ي)
    و في حالة الأحرف الإنجليزية من حرف (A) الى حرف (Z)
    و يجب ان نعلم ان هذه الدالة حساسة لحالة الأحرف في اللغة الإنجليزية فمثلا اصغر حرف في اللغة الإنجليزية هو A و الأكبر هو B و هكذا وصولا الى Z و عند الوصول الى Z كابيتل يعتبر اصغر من a و هكذا وصولا الى z

    و الصيغة العامة لهذه الدالة هي كالتالي :
    كود PHP:
    <?php
        $arr 
    = array(---elements---);
        
    sort($arr);
    ?>


    لاحظ ان هذه الداله لها باراميتر واحد يتم تمريره لها و هو المصفوفه التي نريد ترتيب عناصرها

    والآن لاحظ هذا المثال الشامل الذي يشمل كل كل الكلام السابق :

    كود PHP:
    <?php
        
    #################################
        # sorting array of numbers
        
    $arr1 = array(2,4,3,1,5);
        
    sort($arr1);
        foreach(
    $arr1 as $key=>$value){
            echo 
    $value."<br/>";
        }
        echo 
    "--------<br/>";
        
    #################################
        # sorting array of letters
        
    $arr2 = array('a','A','B','b');
        
    sort($arr2);
        foreach(
    $arr2 as $key=>$value){
            echo 
    $value."<br/>";
        }
        echo 
    "--------<br/>";
    ?>

    و في هذا المثال قمنا بتعريف مصفوفة رقمية ثم قمنا بترتيبها بإستخدام الدالة ()sort ثم قمنا بطباعتها و هكذا بالنسبة للمصفوفة الثانية فهي مصفوفة حرفية و قمنا بترتيبها بنفس الطريقة و بإمكانك مشاهدة نتيجة تنفيذ هذا الكود عبر الرابط التالي :

    http://www.al79n-php.info/less15/arr1.php

    2 - الدالتين ()asort و ()ksort

    تستخدم هذه الدوال في حالة المصفوفات المركبة بحيث اننا احيانا نحتاج الى الترتيب حسب العنصر و في هذه الحالة نستخدم ()asort و احيانا اخرى نحتاج الى ترتيب المصفوفة حسب الفهرس او المفاتيح و في هذه الحالة نستخدم ()ksort

    لاحظ المثال التالي :
    كود PHP:
    <?php
        
    ####################################################
        # sorting an array by values using asort() function
        
    $arr1 = array( 'A'=>'a'=>'B'=>'c'=>4);
        
    asort($arr1);
        foreach(
    $arr1 as $key=>$value){
            echo 
    $key."=>".$value."<br/>";
        }
        echo 
    "--------<br/>";
        
    ####################################################
        # sorting an array by indexs (keys) using ksort() function
        
    $arr2 = array( 'A'=>'a'=>'B'=>'c'=>4);
        
    ksort($arr2);
        foreach(
    $arr2 as $key=>$value){
            echo 
    $key."=>".$value."<br/>";
        }
    ?>


    في هذا المثال قمنا بتعريف مصفوفة مركبة مفاتيحها (الفهرس) عبارة عن حروف مختلفة و منوعة (حروف كبيرة و صغيرة) و القيم لها هي عبارة عن ارقام عشوائية غير مرتبة ثم قمنا بإستخدام الدالة ()asort لترتيب المصفوفة و ثم طباعتها و هنا سوف تلاحظ انه تم ترتيب المصفوفة بناء على القيم و بغض النظر عن المفتاح
    و ثم قمنا بتعريف مصفوفة ثانية و لها نفس القيم في المصفوفة الأولى و لكن قمنا بإستخدام الدالة ()ksort لترتيب المصفوفة و ثم طباعتها و هنا ستلاحظ انه تم ترتيب المصفوفة بناء على المفاتيح (الحروف) و بغض النظر عن القيم

    و بإمكانك مشاهدة نتائج تنفيذ هذا الكود و مقارنته من خلال الرابط التالي :
    http://www.al79n-php.info/less15/arr2.php

    ثانيا : دوال الترتيب العكسي للمصفوفات

    رأينا في الجزء السابق ان الدوال ()asort و ()ksort تقوم بالترتيب التصاعدي اي من الأصغر الى الأكبر و في هذا الجزء لدينا نفس الدوال لكن بإضافة حرف r لهما سيصبح عملهم عكسي اي ترتيب عناصر المصفوفة تنازليا اي من الأكبر الى الأصغر و هذه الدوال هي ()arsort و ()krsort و عملهم نفس عمل الدوال السابقة لكن الترتيب يكون عكسي لاحظ المثال التالي :

    كود PHP:
    <?php
        
    ####################################################
        # sorting an array by values using arsort() function
        
    $arr1 = array( 'A'=>'a'=>'B'=>'c'=>4);
        
    arsort($arr1);
        foreach(
    $arr1 as $key=>$value){
            echo 
    $key."=>".$value."<br/>";
        }
        echo 
    "--------<br/>";
        
    ####################################################
        # sorting an array by indexs (keys) using krsort() function
        
    $arr2 = array( 'A'=>'a'=>'B'=>'c'=>4);
        
    krsort($arr2);
        foreach(
    $arr2 as $key=>$value){
            echo 
    $key."=>".$value."<br/>";
        }
    ?>


    و بإمكانكم تتبع البرنامج و مشاهدة ناتج التنفيذ عبر الرابط التالي :
    http://www.al79n-php.info/less15/arr3.php


    ثالثا : اعادة ترتيب المصفوفات Reordering

    في بعض برامجنا نحتاج الى اعادة ترتيب المصفوفات بشكل معين او بطريقة معينة و في هذا الجزء سنتعرف على بعض الدوال التي تقوم بهذه الوظائف ....

    1 - الدالة ()shuffle

    وظيفة هذه الدالة انها تقوم بترتيب عناصر المصفوفة بشكل عشوائي في كل مرة يتم تشغيل البرنامج فيها و كمثال عليها تطبيقات الفيسبوك مثل اعرف مزاجك و ....
    و مثال عليها :

    كود PHP:
    <?php
        $arr 
    = array('happy' 'sad' 'angry');
        
    shuffle($arr);
        foreach(
    $arr as $key=>$value){
            echo 
    $value."<br/>";
        }
    ?>


    و عند تشغيلك للرابط التالي و اعادة تحميل الصفحة اكثر من مرة سوف تلاحظ بأن النتائج تختلف :
    http://www.al79n-php.info/less15/arr4.php


    2 - الدالة ()array_reverse

    تقوم هذه الدالة بإنشاء دالة جديدة تحمل نفس عناصر المصفوفة الممرره لها لكن بترتيب عكسي (لاحظ انها ترجع النتيجة في مصفوفة جديدة)

    لاحظ المثال التالي :
    كود PHP:
    <?php
        $old_array 
    = array('a','b','c','d');
        
    $new_array array_reverse($old_array);
        foreach(
    $new_array as $key=>$value){
            echo 
    $value."<br/>";
        }
    ?>


    لاحظ هنا اننا قمنا بتحريف مصفوفة تحتوي الحروف a , b , c , d
    ثم قمنا بتعريف مصفوفة جديدة و جعلنا النتائج التي ترجع من الدالة هي التي تخزن في هذه المصفوفة و قمنا بطباعة عناصر هذه المصفوفة الجديدة و سوف تلاحظ انه الحروف طبعت عكسية و هذه هي وظيفة الدالة و بإمكانكم مشاهدة الناتج عبر الرابط التالي :
    http://www.al79n-php.info/less15/arr5.php

    3 - الدالة ()array_push

    و تستخدم هذه الدالة لإضافة عنصر الى المصفوفة
    لاحظ المثال التالي :
    كود PHP:
    <?php
        $arr 
    = array('a','b','c','d');
        
    array_push($arr,'e');
        foreach(
    $arr as $key=>$value){
            echo 
    $value."<br/>";
        }
    ?>


    لاحظ هنا ان هذه الدالة تأخذ معاملين الأول هو اسم المصفوفة التي نريد الإضافة لها و هي هنا arr$ و المعامل الثاني هو العنصر الذي نريد اضافته و هنا نحن اضفنا حرف e الى عناصر المصفوفة الأصلية

    و بإمكانك الإطلاع على الناتج عبر الرابط التالي :
    http://www.al79n-php.info/less15/arr6.php

    4 - الدالة ()array_pop

    هذه الدالة هي عكس الدالة السابقة ()array_push و وظيفتها حذف اخر عنصر في المصفوفة و ارجاعه الى متغير
    لاحظ المثال التالي :
    كود PHP:
    <?php
        $arr 
    = array('a','b','c','d');
        
    array_push($arr,'e');
        echo 
    "array after add 'e' :<br/>";
        foreach(
    $arr as $key=>$value){
            echo 
    $value."<br/>";
        }
        echo 
    "<br/>";
        
    $deleted array_pop($arr);
        echo 
    "array after delete 'e' :<br/>";
        foreach(
    $arr as $key=>$value){
            echo 
    $value."<br/>";
        }
        
        echo 
    "<br/>deleted element is : ".$deleted;
    ?>


    و ايضا بإمكانكم مشاهدة ناتج تنفيذ هذا الكود على الرابط التالي :
    http://www.al79n-php.info/less15/arr7.php


    الى هنا نكتفي اخوتي الكرام لأن الخوض في دوال ال php موضوع لن ينتهي حتى لو كتبنا مجلدات لأنها اكثر لغة برمجة تدعمنا بالدوال لهذا نكتفي بهذه الدوال و في حال مرور دالة جديدة علينا من خلال امثلة الدروس القادمة سنقوم بشرحها و الى اللقاء في الدرس القادم ....










    التعديل الأخير تم بواسطة Sc®ipt ; 01-26-2011 الساعة 03:55 AM

  2. #2
    عضو ذهبي الصورة الرمزية وسام المصري
    تاريخ التسجيل
    Sep 2010
    العمر
    33
    المشاركات
    406

    افتراضي رد: [دورة php - الدرس الخامس عشر] - الجزء الثالث : دوال المصفوفات

    كتير حلو ومفيد
    منَ عجآئب آلاخلآق آلبشرية ! عندمآ نگون علىّ [ حق ] لـآ آحد يتذگر وُعندمآ نگونَ علىّ [ خطأ ] لآ آحد يـنسىّ

  3. #3
    عضو جديد الصورة الرمزية DANA MURAD
    تاريخ التسجيل
    May 2010
    المشاركات
    7

    افتراضي رد: [دورة php - الدرس الخامس عشر] - الجزء الثالث : دوال المصفوفات

    يسلمو ديــــــــــــــادتك

  4. #4
    عضو مؤسس الصورة الرمزية Sc®ipt
    تاريخ التسجيل
    Nov 2008
    الدولة
    There's no place like 127.0.0.1
    العمر
    36
    المشاركات
    4,003

    افتراضي رد: [دورة php - الدرس الخامس عشر] - الجزء الثالث : دوال المصفوفات

    وسام و دانا منورين والله و ربي يسلمكم

+ الرد على الموضوع

معلومات الموضوع

الأعضاء الذين يشاهدون هذا الموضوع

الذين يشاهدون الموضوع الآن: 1 (0 من الأعضاء و 1 زائر)

المواضيع المتشابهه

  1. [دورة php - الدرس الرابع عشر] - الجزء الثاني : المصفوفات الحرفية و المركبة و تعريفها
    بواسطة Sc®ipt في المنتدى منتدى الدورات العلمية المتخصصه
    مشاركات: 4
    آخر مشاركة: 01-26-2011, 06:32 PM
  2. [دورة php - الدرس الثالث عشر] - الجزء الأول : المصفوفات الرقمية و تعريفها
    بواسطة Sc®ipt في المنتدى منتدى الدورات العلمية المتخصصه
    مشاركات: 3
    آخر مشاركة: 12-13-2010, 04:24 PM
  3. [دورة php - الدرس الثاني عشر] - الجزء الثاني : تكملة جمل التكرار و تطبيقات عليها
    بواسطة Sc®ipt في المنتدى منتدى الدورات العلمية المتخصصه
    مشاركات: 3
    آخر مشاركة: 12-12-2010, 02:06 AM
  4. [دورة php - الدرس الحادي عشر] - الجزء الأول : جمل التكرار و الدوران : for + while
    بواسطة Sc®ipt في المنتدى منتدى الدورات العلمية المتخصصه
    مشاركات: 5
    آخر مشاركة: 12-11-2010, 06:15 PM
  5. [دورة php - الدرس الثامن] - الجزء الثالث : تطبيق عملي للنماذج - اتصل بنا
    بواسطة Sc®ipt في المنتدى منتدى الدورات العلمية المتخصصه
    مشاركات: 9
    آخر مشاركة: 12-11-2010, 01:05 AM

الكلمات الدلالية لهذا الموضوع

مواقع النشر (المفضلة)

مواقع النشر (المفضلة)

ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •