تالا

عزيزي الزائر / عزيزتي الزائرة يرجي التكرم بتسجبل الدخول اذا كنت عضو معنا
او التسجيل ان لم تكن عضو وترغب في الانضمام الي اسرة المنتدي
سنتشرف بتسجيلك
شكرا
ادارة المنتدي

الأصدقاء والأخبار ، والمعلومات ، والنساء ، والشباب ، برامج ، صور ، والسيارات الرياضية ، والأغاني ومقاطع الجوال ، والتجارة

  

    Thumbs up التكرارات والمصفوفات في لغة بي اتش بي

    شاطر
    avatar
    Admin
    Admin
    Admin

    المزاج :
    دولة :
    رقم العضوية : 1
    الجنس : ذكر
    عدد المساهمات : 781
    نقاط : 8275
    تاريخ التسجيل : 22/05/2009

    Thumbs up التكرارات والمصفوفات في لغة بي اتش بي

    مُساهمة من طرف Admin في الخميس 25 يونيو 2009, 10:43 am

    التكرارات

    التكرارات عبارة عن تكرار أمر معين بعدد معين من المرات ولقد اخذنا سابقاً
    الدوال الشرطية أو العبارات الشرطية بالأصح فوجدنا أن الكود الذي نكتبه في
    العبارات الشرطية لا تتنفذ إلا عندما يكون الشرط صحيحاً
    أيضا التكرارت فهي تختبر الشرط فإذا كانت قيمته صحيحة فإنها تقوم بعمل
    الكود المطلوب ثم تقوم بإعادة اختبار القيمة فإذا كان صحيحاً فإنها تقوم
    بإعادة تنفيذ الكود وهكذا ، أما عندما لا يكون الشرط صحيحاً فإنها تتوقف
    عن تنفيذ الكود ويتم اكمال البرنامج بشكل عادي ... هناك ثلاثة أنواع من
    التكرارات .
    إن أول دالة نقوم بأخذها في البداية هي الدالة while

    التكرار
    while

    لقد قمنا بأخذ التكرار while لأنه بسيط جداً وصيغه هذا التكرار هي :


    كود PHP:

    While (condition شرط (

    {

    code

    }

    مثال :

    <?

    $d
    =10 ;

    while (
    $d<15)

    {

    echo
    “$d <br>;

    $d++;

    }

    ?>



    سيقوم الـPHP أولا بإعطاء المتغير $d القيمة 10 ثم يقوم بعد ببدء التكرار
    while فإذا كان الشرط صحيحاً (وهو أن المتغير أصغر من الرقم 15) فإنه يقوم
    بتنفيذ الكود الذي بين الأقواس وعمل هذا الكود أن يقوم بطباعة المتغير ثم
    يقوم بإضافة واحد على القيمة الموجودة في المتغير $d ثم بعد ذلك سيتم
    اختبار الشرط مرة ثانية فإذا كان صحيحاً فسيتم نفس العملية حتي يكون الشرط
    غير صحيح فيتوقف عندها التكرار ويتم إكمال الكود التي تقع بعد الأقواس .

    إذا لم تقم بوضع حد للتكرار فلن يتوقف التكرار وقد يكون لانهائي ....


    مثال :


    كود PHP:
    <?

    $d
    =10 ;

    while (
    $d<15)

    {

    echo
    “$d <br>;

    }

    ?>




    سيتم طباعة الرقم 10 ولن يتوقف التكرار لأن الشرط صحيح دائماً وليس هناك
    مايوقفه بينما في الكود السابق استطعنا إيقاف الكود بسبب أننا كنا نضيف
    واحد على القيمة الموجودة في المتغير وكلما يتم اعادة اختبار الكود كل ما
    تتغير القيمة حتى يصبح الشرط غير صحيح بسبب أن $d أكبر من 15 .







    avatar
    Admin
    Admin
    Admin

    المزاج :
    دولة :
    رقم العضوية : 1
    الجنس : ذكر
    عدد المساهمات : 781
    نقاط : 8275
    تاريخ التسجيل : 22/05/2009

    رد: Thumbs up التكرارات والمصفوفات في لغة بي اتش بي

    مُساهمة من طرف Admin في الخميس 25 يونيو 2009, 10:44 am


    التكرار
    do - while

    هذا التكرار يعمل بنفس طريقه التكرار الأول إلا أنه يوجد بعض الاختلافات البسيطة وصيغته كالتالي :


    كود PHP:

    do

    code

    while (conditionشرط );

    مثال :

    <?

    $f
    =15 ;

    do

    {

    echo
    “$f”;

    $f ++

    }

    while () ;




    سيقوم التكرار بتنفيذ السطر الموجود بين القوسين أولا ثم يقوم بتنفيذ
    بإختبار الشرط فإذا كان الشرط صحيحاً قام بإعادة العملية الموجودة بين
    القوسين وهي إضافة واحد على المتغير $f وهكذا حتي يكون الشرط غير صحيح
    فيتم التوقف .. لاحظ أننا في التكرار الأول قمنا باختبار الشرط قبل صناعة
    أي عمل بينما في التكرار الثاني قمنا بتنفيذ الكود أولا ثم قمنا بإجراء
    الاختبار .



    التكرار FOR

    يختلف هذا التكرار عن سابقيه لكن وظيفته هي نفس وظيفتهما وهي تكرار الأوامر عند حصول شي معين

    الصيغة :


    كود PHP:
    For (counter عداد ; test value اختبار القيمة ; set counter أداء عمليه على العداد )

    {

    code شفرة

    }




    مثال :


    كود PHP:
    <?

    For ($u = 18 ; $u>10 ; $u--)

    {

    echo
    $u;

    }

    ?>




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

    كأننا نقول للـphp بشكل عامي أن يقوم في البداية بإعطاء المتغير $u القيمة
    18 وقبل ان يقوم بتنفيذ الكود عليه أن يقوم بتحليل الشرط فإذا كان الشرط
    صحيحاً فإنه يقوم بإنقاص واحد من المتغير $u ويتم تنفيذ الكود حتي يصبح
    المتغير$u قيمته 9 فيقوم الـPHP آنذاك بالخروج من التكرار والذهاب الي
    الكود الذي يلى القوسين .







    avatar
    Admin
    Admin
    Admin

    المزاج :
    دولة :
    رقم العضوية : 1
    الجنس : ذكر
    عدد المساهمات : 781
    نقاط : 8275
    تاريخ التسجيل : 22/05/2009

    رد: Thumbs up التكرارات والمصفوفات في لغة بي اتش بي

    مُساهمة من طرف Admin في الخميس 25 يونيو 2009, 10:44 am


    المصفوفات

    لقد قمنا بتعريف المصفوفات سابقاً بشكل بسيط وحان الوقت الآن لنعرفها
    ونعرف كيفية عملها . المصفوفات عبارة عن متغير وهذا المتغير يحتوي على
    أكثر من قيمة أو عنصر (element) وكل عنصر له فهرسة (Index) تبدأ هذه
    الفهرسة من الصفر إذا لم تقم بتحديدها

    مثال :


    كود PHP:
    <?

    $A
    [ ] = “alfareees”;

    $A[ ] = 13;

    ?>




    في هذا المثال سيقوم الـPHP بإعطاء الفهرسة تلقائياً فسيقوم بوضع الرقم فتصبح المتغير فهرسته كالتالي :


    كود PHP:
    $A[0] = “alfareees”;

    $A[1] = 13;




    إننا لم نقم بإدخال هذه الأرقام من تلقاء أنفسنا ولكن الـPHP قام بوضعها مع أنه يمكننا أن ندخلها بشكل عادي فمثلاً لو كتبنا :


    كود PHP:
    <?

    $A
    [0]= “alfareees”;

    $A[1] = 13;

    ?>




    سيقوم الـPHP بأخذ الفهرسة المعتمدة ولن يضع أي فهرسة أخري يمكننا أيضا أن نكتب أي فهرسة ولانعتمد على الترتيب في الأرقام .

    مثال :

    كود PHP:
    <?

    $A
    [10 ] = “alfareees”;

    $A[ 25] = 13;

    ?>



    هل لاحظت أيضا أننا لم نقم بتعريف نوع متغيرات المصفوفة وقام الـPHP
    بتعريفها تلقائياً بدلاً منا فمرة استخدمنا قيمة حرفية ومرة استخدمنا
    رقماُ ورغم ذلك فلم يقم الـPHP بعمل أي اعتراض إضافة إلى ذلك فإن الـPHP
    يقوم بتحديد عدد عناصر المصفوفة تلقائياً فهو يعرف مثلاً من المثال السابق
    أن عدد عناصر المصفوفة الكلي هو عنصرين .
    يمنحنا الـPHP ميزة أخري وهي عدم التقيد بالأرقام في الفهرسة فمثلاً يمكننا استخدام حروف عادية .

    مثال :


    كود PHP:
    <?

    $A
    [“a” ] = “alfareees”;

    $A[“b” ] = 13;

    ?>




    لاحظ أننا استخدمنا القيم الحرفية ولم يعترض الPHPJ بتاتاً ويمكننا طباعة أي عنصر من عناصر المصفوفة بكل بساطة .





    avatar
    Admin
    Admin
    Admin

    المزاج :
    دولة :
    رقم العضوية : 1
    الجنس : ذكر
    عدد المساهمات : 781
    نقاط : 8275
    تاريخ التسجيل : 22/05/2009

    رد: Thumbs up التكرارات والمصفوفات في لغة بي اتش بي

    مُساهمة من طرف Admin في الخميس 25 يونيو 2009, 10:45 am

    مثال :


    كود PHP:
    <?

    $r
    [“aa”] = “ahmed ali”;

    $r [1] = 13273;

    $r [20] = 13273;

    echo
    $r[aa];

    echo
    $r[20];

    echo
    $r["aa"];

    ?>




    لا فرق بين أن نكتب النص الحرفي (aa) بين علامتي تنصيص عند الطباعه وعند
    كتابته بدون علامات تنصيص ... سيقوم الـPHP بمعرفة ذلك تلقائياً .

    يمكننا تعريف المصفوفات أيضا بطريقة أخري

    $variable = array (elements) ;

    مثال :


    كود PHP:
    <?

    $t
    =array (“ahmed”, “ali”, “salem”, “alfarsi”);

    echo
    $t [0];

    ?>




    يقوم الـPHP بإعطاء كل عنصر من عناصر المصفوفة رقم فهرسة فتصبح كالتالى :

    Element العنصر
    Index الفهرسه

    Ahmed 0
    Ali 1
    Salem 2
    alfarsi 3



    إذن القيمة التي سيطبعها الـPHP في النهايه هي ahmed ، لاحظ أن الـPHP قام
    بإعطاء رقم الفهرسة وقام بالبدء من الصفر ولكن يمكننا جعل الـPHP يبدأ
    الفهرسة من الرقم واحد كالتالي :

    كود PHP:
    <?

    $r
    = array (1=>”ahmed”, “ali”,”salem”, “alfarsi”);

    ?>




    عند تعريفك لرقم الفهرسة للقيمة الأولى سيقوم الـPHP بإعطاء أرقام فهرسة بشكل تسلسلي ،
    عندئذ ستصبح الفهرسة كالتالي :

    Element العنصر
    Index الفهرسه

    Ahmed 1
    Ali 2
    Salem 3
    alfarsi 4


    هناك طريقة لتكون أيضا الفهرسة هي عبارة عن حروف :

    كود PHP:

    ?>







    <?

    $r
    = array (“ss”=>”ahmed”, “sf”=> “ali”, “da”=>”salem”, “bv”=> “alfarsi”);

    ?>

    عندئذ ستصبح الفهرسة كالتالي :



    ?>










    avatar
    Admin
    Admin
    Admin

    المزاج :
    دولة :
    رقم العضوية : 1
    الجنس : ذكر
    عدد المساهمات : 781
    نقاط : 8275
    تاريخ التسجيل : 22/05/2009

    رد: Thumbs up التكرارات والمصفوفات في لغة بي اتش بي

    مُساهمة من طرف Admin في الخميس 25 يونيو 2009, 10:46 am




    Element العنصر
    Index الفهرسه

    Ahmed Ss
    Ali Sf
    Salem Da
    alfarsi Bv

    عندما نريد تغيير أي عنصر في المصفوفة فيمكننا عمل ذلك ببساطه .

    مثال :


    كود PHP:
    $r [ss]= “لمياء”;




    لاحظ أننا قمنا بتغيير القيمة من (ahmed) الى (لمياء) ....طريقة بسيطة أليس كذلك : )

    قراءه المصفوفات واستخراج القيم
    تكلمنا سابقا عن التكرار For
    يمكننا استخراج عناصر مصفوفة وطباعتها في بساطة وتوفير وقت عن طريق التكرارات

    لنفرض أن لديك هذه المصفوفة :


    كود PHP:
    <?

    $people
    =array (“ahmed”, “ali”, “salem”, “alfarsi”);

    ?>




    واردت أن تطبع أسماء جميع الاشخاص المتواجدين فيها
    أولاً نحن نعرف أن المصفوفة إذا لم نقم بتعريف رقم فهرسة لها فإن الـPHP
    يقوم ببداية فهرستها من الصفر وعلى ذلك فان رقم العنصر الأول 0 ورقم
    العنصر الرابع 3 ... على ذلك يمكننا بكل بساطه كتابة الكود التالي الذي
    يقوم بطباعة المصفوفة كالتالى :


    كود PHP:
    <?

    $people
    =array (“ahmed”, “ali”, “salem”, “alfarsi”);

    echo
    “$people[0]. <br>;

    echo
    “$people[1]. <br>;

    echo
    “$people[2]. <br>;

    echo
    “$people[3]. <br>;

    ?>




    لنفرض أن لديك ثلاثين أو ثلاثة آلاف اسم في مصفوفة ألن تبدو هذه الطريقة متعبة قليلا !!!
    هناك طريقة أخري وهي عن طريق التكرارات .
    لنفرض أننا أردنا كتابة تكرار يقوم بطباعة الأرقام من واحد الى عشرة فإننا نستطيع كتابة التكرار بالشكل التالي :


    كود PHP:
    <?

    For ($I=1;$I<11;$I++)

    {

    Echo
    "$I <br>";

    }

    ?>









    avatar
    Admin
    Admin
    Admin

    المزاج :
    دولة :
    رقم العضوية : 1
    الجنس : ذكر
    عدد المساهمات : 781
    نقاط : 8275
    تاريخ التسجيل : 22/05/2009

    رد: Thumbs up التكرارات والمصفوفات في لغة بي اتش بي

    مُساهمة من طرف Admin في الخميس 25 يونيو 2009, 10:46 am



    والآن لنقل أننا نريد طباعة الأربعة عناصر في المصفوفة كل ماعلينا هو إجراء عملية بسيطة على الكود لكي يتم ذلك :


    كود PHP:
    <?

    $people
    =array ("ahmed", "ali", "salem", "alfarsi");



    For (
    $I=0;$I<4;$I++)

    {

    Echo
    "$people[$I] <br>";

    }

    ?>




    لاحظ أننا بدأنا العداد بالقيمة صفر ثم اشترطنا أن يكون أقل من 4 لأن آخر
    عنصر في المصفوفة رقم فهرسته 3 ثم قمنا بجعله يزداد بقيمة 1 لأننا نريد
    طباعة جميع عناصر المصفوفة وقمنا بوضع رقم العداد في خانة الفهرسة وعلى
    ذلك سيتم في كل تكرار طباع عنصر المصفوفة الذي فهرسته تساوي رقم العداد .

    لقد تكلمنا سابقاً في درس النماذج عن إخراج القيم من قائمة على شكل مصفوفة .

    مثال :


    كود PHP:
    <form action = “array.php” method = post>

    ما هو مشروبك المفضل ؟

    <br>

    <
    select name = “a[]” multiple>

    <
    option>شاي</option>

    <
    option>قهوة</option>

    <
    option>كابتشينو</option>

    <
    option>توت</option>

    <
    option>برتقال</option>

    </
    select>

    <
    br>

    <
    input type=submit value = “لذيذ” >

    </
    form>




    في ملف الـarray.php اكتب :


    كود PHP:

    <html>

    لقد قمت باختيار التالى :

    <?

    For ($I=0;$I<4;$I++)

    {

    Echo
    "$a[$I] <br>";

    }

    ?>

    </html>




    لقد عرضنا في القائمة خمسة عناصر ... لاحظ أننا وضعنا في اسم المتغير
    للقائمة قوسين [ ] لكي يتعرف الـhtml على أنه سيتم تخزين البيانات
    تلقائياً بعد ذلك قام الـPHP بفهرسة العناصر التي تم إرسالها من قبل
    العميل سواء كانت ثلاثة أو أربعة ولكنها بالطبع لن تزيد على خمسة .... على
    ذلك سيكون آخر رقم تنتهي به المصفوفة هو 4 .





    avatar
    Admin
    Admin
    Admin

    المزاج :
    دولة :
    رقم العضوية : 1
    الجنس : ذكر
    عدد المساهمات : 781
    نقاط : 8275
    تاريخ التسجيل : 22/05/2009

    رد: Thumbs up التكرارات والمصفوفات في لغة بي اتش بي

    مُساهمة من طرف Admin في الخميس 25 يونيو 2009, 10:47 am

    أتوقع أنك الآن بدأت تحب المصفوفات .... يمكننا صناعة القائمة عن طريق المصفوفة أيضاً ....

    مثال :


    كود PHP:

    <form action = “list.php” method = post>

    ما هو مشروبك المفضل ؟

    <br>

    <select name = “s” >

    <?

    $shrab
    =array(“شاي”,”قهوة”,”كابتشينو”,”توت”,”برتقال”);

    For (
    $k=0;$k<4;$k++)

    {

    echo
    <option>.$shrab[$k].</option>;

    }

    ?>

    </select>

    </form>




    عند اختيار المستخدم للقيمة سيتم وضعها في المتغير $s يمكنك مراجعة درس
    النماذج لكي تفعل ذلك ، هذا المثال يقوم بصناعة مصفوفة للمشروبات ثم يقوم
    بإخراجها في قائمة مما يوفر علينا الوقت في كتابة الكود فلو كان لديك مثلا
    حوالى مئة دولة فيمكنك مثلا وضعها في مصفوفة وبعد ذلك بناء القائمة التي
    سوف تقوم ببناء القائمة التي ستحتوي على هذه الدول عن طريق المصفوفات
    والتكرارات .

    قم بحفظ التغييرات في ملف امتداده php وقم بكتابة الملف list.php اعتمادا على معلوماتك السابقة في درس النماذج .



    دوال المصفوفات



    الدالة key

    لنفرض أن لدينا مصفوفة مكونة من عنصرين :


    مثال :


    كود PHP:

    $s= array (“على”,”محمد”);

    الآن لنضف إليها هذه السطور

    <?

    $s
    = array (“على”,”محمد”);

    $t=key ($s);

    echo
    $t;

    ?>




    يقوم الأمر key بإيجاد رقم الفهرسه (index) العنصر النشط حالياً .... وهو
    الرقم صفر حيث أننا لم نضع فهرسة وهذه هي الفهرسة التي وضعها الـPHP
    تلقائياً عندما لم نضع فهرسة ... قد تحيرك كلمة النشط لكن ستعرف أننا
    نستطيع التجول بين عناصر المصفوفة لاحقاً .

    قد يكون رقم الفهرسة حروف أو كلمات

    مثال :


    كود PHP:
    <?

    $s
    = array (“ع”=>“على”,”م”=>”محمد”);

    $t=key ($s);

    echo
    $t;

    ?>








    الدالة current()
    تقوم الدالة current بإيجاد القيمة لعنصر المصفوفة الحالى (index value) .


    مثال :


    كود PHP:
    <?

    $s
    = array (“ع”=>“على”,”م”=>”محمد”);

    $p=current ($s);

    echo
    $p;

    ?>




    في المثال السابق قمنا بإيجاد القيمة الحالية للعنصر النشط .... لاحظ أننا
    أوجدنا بالأمر key رقم الفهرسة بينما أوجدنا بالأمر current القيمة للعنصر
    المفهرس .

    كيف يمكننا تنشيط العناصر الاخري للمصفوفة ؟!

    يمكننا ذلك عن طريق الدالتين next() و prev اللتان تقومان بالتجول بين
    عناصر المصفوفة ..... لنفرض أن لدينا مصفوفة تتكون من ثلاثة عناصر

    مثال :


    كود PHP:
    <?

    $s
    = array (“ع”=>“على”,”م”=>”محمد”,”ا”=>”احمد”);

    echo
    key($s).<br>;

    echo
    current($s) .<br>;

    ?>




    لقد قمنا في هذا المثال بطباعة قيمة رقم الفهرسة للعنصر الحالى وقيمته (
    اقصد برقم الفهرسة الحرف(ع) واقصد بالقيمة (على) .... لنقم الآن بالتجول
    بين عناصر المصفوفة ولنر نتيجة الطباعة .

    مثال :


    كود PHP:
    <?

    $s
    = array (“ع”=>“على”,”م”=>”محمد”,”ا”=>”احمد”);

    next($s);

    echo
    key($s).<br>;

    echo
    current($s) .<br>;

    ?>

    <?

    $s
    = array (“ع”=>“على”,”م”=>”محمد”,”ا”=>”احمد”);

    next($s);

    next($s);

    echo
    key($s).<br>;

    echo
    current($s) .<br>;

    ?>



    لاحظ أننا كتبنا الدالة next() قبل أن نقوم بالإنتقال لكي يتم تنشيط
    العنصر الثاني في أول مثال ولتنشيط العنصر الثالث في ثالث مثال (ولاحظ
    أننا كتبنا next() مرتين ) .

    يمكننا الرجوع لتنشيط العنصر السابق بوضع الدالة prev() فمثلاً يمكننا تعديل المثال التالي :


    كود PHP:
    <?

    $s
    = array (“ع”=>“على”,”م”=>”محمد”,”ا”=>”احمد”);

    next($s);

    next($s);

    prev($s);

    echo
    key($s).<br>;

    echo
    current($s) .<br>;

    ?>



    فسيقوم الـPHP في هذه الحاله طباعة العنصر الثاني وليس الثالث لأنه تم التراجع خطوه عن طريق prev()

    ماذا سيحصل إذا قمنا بإضافة عنصر على مصفوفة غير محدودة الفهرسة ؟!
    لنفرض أن لدينا مصفوفة وأضفنا إليها عنصر غير محدد الفهرسة .

    مثل :


    كود PHP:
    <?

    $s
    = array (12=>“على”,5=>”محمد”,44=>”احمد”);

    $s[ ]= “هشام”;

    Next($s);

    Next($s);

    Next($s);

    Echo
    key ($s).<br>;

    Echo
    current( $s ).<br>;

    ?>


    سيقوم
    الـPHP ببساطة بالبحث عن أكبر رقم فهرسة وبعد ذلك يبدأ بإعطاء الفهرسة
    تسلسلاً بعده فإذا كانت أرقام الفهرسة حروفاً بدأ من الصفر في اعطاء الرقم
    .. ولاحظ في هذا المثال بأنه قام بإعطاء العنصر الرقم 45 لأن أكبر عنصر في
    المصفوفة هو 44 وعلى ذلك قام بإعطاء الأرقام تسلسلاً بعد هذا الرقم .



    الدالة
    List و Each

    لنفرض أنك قد قمت بصنع مصفوفة غير مفهرسة بالترتيب


    مثال :


    كود PHP:
    <?

    $s
    = array (12=>“على”,5=>”محمد”,44=>”احمد”);

    ?>





    avatar
    Admin
    Admin
    Admin

    المزاج :
    دولة :
    رقم العضوية : 1
    الجنس : ذكر
    عدد المساهمات : 781
    نقاط : 8275
    تاريخ التسجيل : 22/05/2009

    رد: Thumbs up التكرارات والمصفوفات في لغة بي اتش بي

    مُساهمة من طرف Admin في الخميس 25 يونيو 2009, 10:48 am


    على ذلك دعنا نخبرك بخبر سار وهو أنك تستطيع أن تجعل حياتك مع PHP أسهل مع حياتك مع نفسك !


    While (list(أرقام الفهرسة Index,Element valueقيمة العنصر )=each (array)







    تستطيع بواسطة هذه الدالتين وعن طريق التكرار while استخراج جميع العناصر الموجودة في المصفوفة


    كود PHP:
    While (list($e,$r) = each ($s))

    {

    echo
    <br> $e<br> $r”;

    }



    أولاً
    أنت تقوم بتسمية متغيرين واحد منهما لرقم الفهرسة ($e) والثاني للعنصر
    ($r) ويمكننا تسميتهما بأي اسم وفي حالة ما إذا أردنا عرض العنصر فقط أو
    معرفة العنصر فقط فيمكننا حذف ($e) ولكننا لا نحذف الفاصلة


    كود PHP:
    While (list(,$r) = each ($s))

    {

    echo
    <br> $e<br> $r”;

    }





    لنعد الى المثال الذي فيه رقم الفهرسة والعنصر ... سيقوم التكرار بوضع رقم
    الفهرسة (الذي قد يكون نصياً) في المتغير $e وسيضع قيمة العنصر الذي رقم
    الفهرسة له هو $e في المتغير $r ثم سيقوم بطباعة العناصر حتي ينتهي منها
    جميعها ...
    ملاحظة مهمة : إذا لم تقم بتعريف فهرسة للمصفوفة (حروف أو أرقام أيا كان) فسيتم استخدام العناصر عندما يطلب التكرار الفهارس .


    مثال :


    كود PHP:
    <?

    $e
    =array("fsda","terhfgfd","tewr");

    While (list (
    $I,$V)=each($e))

    {

    echo
    "<br>$e[$I]";

    }

    ?>




    لاحظ مع Hننا طلبنا طباعة الفهرسة (index) إلا أنه تم أخذ العناصر(elements) بدلاً من الفهرسة

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


    مثال :


    كود PHP:

    <table align='center' dir = "rtl" border="1" width="100%" cellspacing="0" bordercolorlight="#000000" bordercolordark="#000000" bordercolor="#000000">

    <tr>

    <td align='center'>الاسم</td>

    <td align='center'>رقم التلفون</td>

    </tr>

    <?

    $s
    = array (658=>"عادل" ,456546=>"سالم" , 465873);

    While (list(
    $e,$r) = each ($s))

    {

    echo
    "<tr><td align='center'>". $r . "</td><td align='center'>" .$e . "</td></tr>";

    }

    ?>

    </table>







    avatar
    Admin
    Admin
    Admin

    المزاج :
    دولة :
    رقم العضوية : 1
    الجنس : ذكر
    عدد المساهمات : 781
    نقاط : 8275
    تاريخ التسجيل : 22/05/2009

    رد: Thumbs up التكرارات والمصفوفات في لغة بي اتش بي

    مُساهمة من طرف Admin في الخميس 25 يونيو 2009, 10:49 am

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

    يمكنك أيضا معرفة عدد العناصر في مصفوفة معينة إذا كنت تريد معرفة عددها وذلك بالطريقة التالية :


    كود PHP:
    <?

    $s
    = array (12=>“على”,5=>”محمد”,44=>”احمد”);

    $S=0;

    While (list(
    $E,$r) = each ($s))

    {

    $S++;

    }

    ECHO
    “عدد عناصر المصفوفه ” . $S++;

    ?>





    فرز المصفوفات

    هناك العديد من الدوال التي يوفرها لنا الـPHP لفرز المصفوفات . نحن سنأخذ نظرة عن الخمسة دوال الأكثر استخداماً :


    الدالة Sort()

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


    Sort (ArrayName);



    إذا قمنا بإنشاء مصفوفة بالشكل التالي :


    $NaNo=array (“ali”,“salem”,“hythem”,“Khaled”,“Ammar”,“Hesham”( ;



    فإذا أردنا فرزها عن طريق الدالة sort() فإننا نقوم باستخدامها كالتالي :


    كود PHP:
    <?

    $NaNo
    =array (“ali”,“salem”,“hythem”,“Khaled”,“Ammar”,“Hesham”(;

    sort($NaNo);

    While (list(
    $e,$r) = each ($NaNo))

    {

    echo
    <br> $e<br> $r”;

    }


    ?>



    لاحظ أنه عند تنفيذك للمثال ستجد أن الـPHP قام بالفرز اعتماداً على
    الأحرف الكبيرة أولاً ثم قام بالفرز بعدها اعتماداً على الأحرف الصغيرة .



    الدالة Arsort()

    هذه الدالة تعمل نفس عملية الدالة sort() ولكن هناك اختلاف بسيط فمثلاً لو كتبنا المصفوفة كالتالي :


    $NaNo=array ( “ad”=>”ahmed”, “kh”=> “khaled”);



    وأردنا فرزها وطباعة الفهارس والقيم كما في المثال التالى :

    كود PHP:
    <?

    $NaNo
    =array ( “ad”=>”ahmed”, “kh”=> “khaled”);

    sort($NaNo);

    While (list(
    $e,$r) = each ($NaNo))

    {

    echo
    <br> $e<br> $r”;

    }

    ?>





    avatar
    Admin
    Admin
    Admin

    المزاج :
    دولة :
    رقم العضوية : 1
    الجنس : ذكر
    عدد المساهمات : 781
    نقاط : 8275
    تاريخ التسجيل : 22/05/2009

    رد: Thumbs up التكرارات والمصفوفات في لغة بي اتش بي

    مُساهمة من طرف Admin في الخميس 25 يونيو 2009, 10:49 am

    قارن ناتج المثال السابق مع هذا المثال :


    كود PHP:
    <?

    $NaNo
    =array ( “ad”=>”ahmed”, “kh”=> “khaled”);

    asort($NaNo);

    While (list(
    $e,$r) = each ($NaNo))

    {

    echo
    <br> $e<br> $r”;

    }

    ?>




    اعتقد انك قد عرفت الفرق ففي المثال الاول قامت الدالة sort باستبدال
    الحروف بأرقام في الفهرسة أما في المثال الثاني فقد تم وضع الحروف كما هي
    وتم فرزها كما تفعل الدالة sort في الفرز .
    باختصار لايوجد فرق بين sort و asort إلا في أن الدالة sort تستبدل فهرسة الحروف بأرقام .



    الدالة Rsort() و arsort

    تقوم بنفس عمل sort و asort ولكن بشكل عكسي جرب الأمثلة التالية :

    مثال :


    كود PHP:
    <?

    $NaNo
    =array ( “ad”=>”ahmed”, “kh”=> “khaled”);

    rsort($NaNo);

    While (list(
    $e,$r) = each ($NaNo))

    {

    echo
    <br> $e<br> $r”;

    }

    ?>




    مثال :


    كود PHP:
    <?

    $NaNo
    =array ( “ad”=>”ahmed”, “kh”=> “khaled”);

    arsort($NaNo);

    While (list(
    $e,$r) = each ($NaNo))

    {

    echo
    <br> $e<br> $r”;

    }

    ?>




    ستجد أن الدالة rsort تقوم بنفس عملية الدالة sort ولكن بشكل عكسي
    أيضاً الدالة arsort تقوم بنفس عملية asort ولكن بشكل عكسي .
    يمكنك استعمال كل هذه الدوال في الفرز مع الحروف العربية ( إذا كان السيرفر يدعم اللغة العربية )
    قم بتطبيق المثال التالي :


    كود PHP:

    RSORT()

    <?

    $NaNo
    =array ( "ad"=>"سالم", "kh"=> "احمد");

    rsort($NaNo);

    While (list(
    $e,$r) = each ($NaNo))

    {

    echo
    "<br> $e<br> $r";

    }

    ?>

    <br>--------<br>

    ARSORT()

    <?

    $NaNo
    =array ( "ad"=>"احمد", "kh"=> "أحمد");

    arsort($NaNo);

    While (list(
    $e,$r) = each ($NaNo))

    {

    echo
    "<br> $e<br> $r";

    }

    ?>

    <br>--------<br>

    ASORT()

    <?

    $NaNo
    =array ( "ad"=>"هاشم", "kh"=> "جمال");

    asort($NaNo);

    While (list(
    $e,$r) = each ($NaNo))

    {

    echo
    "<br> $e<br> $r";

    }

    ?>

    <br>--------<br>

    SORT()

    <?

    $NaNo
    =array ( "ad"=>"هاشم", "kh"=> "جمال");

    sort($NaNo);

    While (list(
    $e,$r) = each ($NaNo))

    {

    echo
    "<br> $e<br> $r";

    }

    ?>





    avatar
    Admin
    Admin
    Admin

    المزاج :
    دولة :
    رقم العضوية : 1
    الجنس : ذكر
    عدد المساهمات : 781
    نقاط : 8275
    تاريخ التسجيل : 22/05/2009

    رد: Thumbs up التكرارات والمصفوفات في لغة بي اتش بي

    مُساهمة من طرف Admin في الخميس 25 يونيو 2009, 10:49 am

    الدالة ksort

    تكلمنا سابقاً عن طريقة فرز المصفوفات ولكن نريد أن نلفت نظرك أننا كنا
    نعتمد على العنصر في الفرز (element) ولكن هذه الدالة تقوم بالاعتماد على
    رقم الفهرسه في الفرز (index)


    مثال : sort


    كود PHP:

    <br>--------<br>

    asort()

    <?

    $NaNo
    =array ( "ad"=>"هاشم", "kh"=> "جمال");

    asort($NaNo);

    While (list(
    $e,$r) = each ($NaNo))

    {

    echo
    "<br> $e<br> $r";

    }

    ?>

    <br>--------<br>

    ksort()

    <?

    $NaNo
    =array ( "ad"=>"هاشم", "kh"=> "جمال");

    ksort($NaNo);

    While (list(
    $e,$r) = each ($NaNo))

    {

    echo
    "<br> $e<br> $r";

    }

    ?>



    لقد اعتمد الـphp على index ولم يعتمد على الـelement في الفرز .



    دوال المصفوفات الإضافية

    هناك الكثير من الدوال التي يمنحنا إياها الـPHP للتعامل مع المصفوفات
    والتي لايكفي الوقت لذكرها الآن سنقوم بشرح أهم دالتين والمستخدمة بكثره
    وهي array_push() و array_pop()

    لنفرض أننا قمنا بإنشاء مصفوفة بالشكل التالي :


    كود PHP:
    <?

    $saher
    [ 5]=”salem”;

    $saher[ 85]=”khaled”;

    $saher[ 35]=”mohmed”;

    $saher[ 19]=”hajeer”;

    ?>




    وأردنا أن نضيف عنصر جديد لها فقمنا بالتالي :


    كود PHP:
    <?

    $saher
    [ 5]=”salem”;

    $saher[ 85]=”khaled”;

    $saher[ 35]=”mohmed”;

    $saher[ 19]=”hajeer”;

    $saher[ ]=”Alfarees”;

    ?>




    انظر إلى العنصر الأخير الذي سيعطيه الـPHP رقم الفهرسة (index) وسيكون رقم فهرسته هو 86 .
    نريد أن نلفت نظرك بأننا نستطيع عمل إضافة لعنصر على المصفوفة بطريقة أخري وهي عن طريق الدالة array_push() كالتالي :


    كود PHP:
    array_push (ArrayNameاسم المصفوفة,Elemnt1, Elemnt2, Elemnt3,..)






    avatar
    Admin
    Admin
    Admin

    المزاج :
    دولة :
    رقم العضوية : 1
    الجنس : ذكر
    عدد المساهمات : 781
    نقاط : 8275
    تاريخ التسجيل : 22/05/2009

    رد: Thumbs up التكرارات والمصفوفات في لغة بي اتش بي

    مُساهمة من طرف Admin في الخميس 25 يونيو 2009, 10:50 am

    نضع في القسم الأول من الدالة اسم المصفوفة التي نريد إضافة العنصر لها
    ونضع في القسم الثاني عنصر واحد أو أكثر وهي التي سيتم إضافتها للمصفوفة .

    مثال :


    كود PHP:

    $saher
    [ 5]=”salem”;

    $saher[ 85]=”khaled”;

    $saher[ 35]=”mohmed”;

    $saher[ 19]=”hajeer”;

    array_push ($saher,Alfarees)

    ?>




    مثال :


    كود PHP:

    $saher
    [ 5]=”salem”;

    $saher[ 85]=”khaled”;

    $saher[ 35]=”mohmed”;

    $saher[ 19]=”hajeer”;

    array_push ($saher,Alfarees,salem,sameer,thamer)

    ?>




    ولو أردنا حذف مثلاً عنصر من المصفوفة فإننا نقوم بتعريف المصفوفة من جديد
    أو يمكننا استخدام الدالة array_pop التي تقوم بحذف آخر عنصر من المصفوفة
    والتي تتطلب فقط اسم المصفوفة

    Array_pop(ArrayName اسم المصفوفة)

    مثال :


    كود PHP:

    $saher
    [ 5]=”salem”;

    $saher[ 85]=”khaled”;

    $saher[ 35]=”mohmed”;

    $saher[ 19]=”hajeer”;

    array_pop($saher)

    ?>




    سيتم حذف العنصر hajeer من المصفوفة ولن يكون في المصفوفة غير ثلاث عناصر .




    Implode و Explode

    تقوم هذه الدالتين باقتصاص قيمة معينة من مصفوفة أو نصوص وتقوم بإضافة قيمة معينة على مصفوفة أو نصوص .



    الدالة Implode

    تقوم بإضافة قيمة على بين عناصر المصفوفة .

    مثال :


    كود PHP:

    $stng
    =array ("ahmed", "salem", "ali", "alfarsi");

    $r =implode ("H",$stng);

    echo
    $r;

    ?>







    الدالة explode

    تقوم بحذف قيمة من مصفوفة وذلك لايعني حذف عناصر من المصفوفة .

    مثال :


    كود PHP:

    $stng
    =array ("ahmed", "salem", "ali", "alfarsi");

    $r =implode ("-",$stng);

    echo
    $r;

    $r= explode ("-",$stng);

    echo
    $r;

    ?>




    HTTP_GET_VARS و HTTP_POST_VARS
    هذه ليست متغيرات بل مصفوفات ، نعم هذه مصفوفات ولكن في ماذا نستخدمها ولماذا ؟
    في الواقع تحدثنا في الدرس السابق عن طريقة التعامل مع النماذج والحصول
    على البيانات من المستخدم وتكلمنا عن أسلوبين لنقل البيانات وهما GET و
    POST
    عندما تصل البيانات محفوظة في متغيرات إلى صفحة الـPHP فإنه يقوم بتعريفها
    تلقائياً ويمكنك طباعة المتغيرات وقيمها مباشرة من غير تعريف .... ولكن
    هذه الميزة في الـPHP يمكن إلغاؤها عن طريق الملف PHP.INI وذلك بإغلاق
    ميزة register_globals
    وذلك بوضع off بدلا من on

    الوضع الافتراضي لها هو on ولكن تستطيع إغلاقها وقد تكون مستاجراً عند
    مزود خدمة ويب وسيط فيقوم بإغلاق هذه الميزة من باب الحماية ليس إلا ....
    لاتقلق يمكنك الحصول على البيانات فهي ما زالت موجودة ولكن يجب عليك أن
    تقوم بإستخدام هذه المصفوفتين لكي تستخرج البيانات .

    لنفرض أنك اشتركت عند مزود ويب وكان قد أغلق ميزة (register_globals)
    حسناً لنفرض أنك قد صنعت نموذجاً يستخدم مربع نص ويحفظ قيمته في متغير
    اسمه Dorrah ثم بعد ذلك يقوم بإرسال هذه القيمة باستخدام الأسلوب GET إذاً
    سيكون جزء من الكود في الصفحة الأولى والتي تحتوي على النموذج كالتالي

    كود PHP:
    <form method =get action = “try.php”>



    ماهو اسم الطفل الذي استيقظ به العالم الاسلامي من غفلته قبل عده شهور !!


    كود PHP:
    <br>

    <
    input type=text name = “Dorrah”>

    <
    br>



    في الملف الثاني(try.php) سنقوم بكتابة الجزء الذي سيقوم بطباعة القيمة كالتالي


    كود PHP:

    Echo HTTP_GET_VARS[“Dorrah”];

    ?>


    لاحظ أننا لم نستخدم $ ولكن إذا أردنا الإحتفاظ بقيمة المتغير في متغير آخر فيمكننا ذلك بشكل عادي كالتالي :


    كود PHP:

    $Dorrah
    = HTTP_GET_VARS[“Dorrah”];

    ?>




    طريقه بسيطة .... أليس كذلك ولكن .... لنفترض أن مزود خدمة الويب لديك
    حريص جداً ولذلك فقد ألغي أيضا ميزة استقبال هذه القيم في المصفوفات ....
    يمكنه ذلك في ملف الـphp.ini في اعدادات الـtrack_vars الذي يقوم بمنع
    السيرفر من استخدام هذه المصفوفات (هذه الميزة يمكن إلغاؤها في php4 )
    .... على ذلك انصحك بإرسال رسال تذمر وشكوي إلى مزود الخدمة لديك .. تعلن
    فيها أن الأمر اصبح لايحتمل .



    مصفوفة متعددة الإبعاد

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

    يمكننا كتابة مصفوفة متداخلة كالتالي :


    كود PHP:

    $mon
    = array (1=>array ("sharkeh al-jafali",154786) ,2 => array ("salem almazen",1257) );

    while (list(
    $personnum) =each ($mon))

    {

    echo (
    "
    $personnum
    "
    );


    while (list(,
    $phone)=each ($mon[$personnum]))

    {

    echo (
    "$phone");

    }

    }

    ?>




    الشرح

    هذا المثال قد يكون غامضاً جداً لكن فكرته بسيطة أولاً افترض أنك تعلم عن list..each جيداً وتعرف صيغة التكرار الذي يستخدمهما .
    الآن لدينا مصفوفة تتكون من رقمين للفهرسة هذين الرقمين كل واحد منهما
    عنصره عبارة عن مصفوفة هذه المصفوفة تحتوي على عنصرين ( ولنتناسى أنهما
    يحتويان على أرقام فهرسة ) وهما اسم شخص ورقم هاتفه .



    echo

    في أول خطوة :


    كود PHP:
    while (list($personnum) =each ($mon))

    {

    echo (
    <br>$personnum”);



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

    في الخطوة الثانية :


    كود PHP:
    while (list(,$phone)=each ($mon[$personnum]))

    {

    echo (
    "$phone");

    }





    نقوم بإخبار الـPHP بطباعة العناصر الذي تحتويها المصفوفة التى تم طباعة
    رقم فهرستها ، ولاحظ (,$phone) أنها تشير إلى عناصر مصفوفة وليس فهارسها
    لأننا تجاهلنا فهارس المصفوفة الداخلية .
    لاتقلق الأمر سهل ولكنه يحتاج الى تدرب فقط ، وعليك أن تتدرب وصدقني أنني حاولت ان أبسط المثال من أجلك ... أتمني أن تكون قد فهمت .



    تطبيق عملي

    افتح محرر النصوص لديك واكتب الكود التالي :


    كود PHP:

    Echo ";

    $boy=array ("أحمد" , "خالد", "سعد","حسن");

    while (list(,
    $Name) = each ($boy))

    {

    echo
    "ماهي السنة الدراسية لـ $Name ؟";

    Echo
    "اول ثانويثاني ثانويثالث ثانوي";

    echo
    "

    "
    ;

    echo
    "";

    }

    echo
    "";

    ?





    avatar
    Admin
    Admin
    Admin

    المزاج :
    دولة :
    رقم العضوية : 1
    الجنس : ذكر
    عدد المساهمات : 781
    نقاط : 8275
    تاريخ التسجيل : 22/05/2009

    رد: Thumbs up التكرارات والمصفوفات في لغة بي اتش بي

    مُساهمة من طرف Admin في الخميس 25 يونيو 2009, 10:51 am

    احفظ الكود باسم exam.php

    افتح محرر النصوص واكتب الكود التالي واحفظه في ملف باسم exam2.php

    كود PHP:




    While (list($I,$V)=each($school))

    {

    $friendschool[] = $school[$I].$boy[$I];

    }

    asort ($friendschool);

    While (list (
    $I,$V)=each($friendschool))

    {

    echo
    "
    $boy[$I]"
    ." ".$school[$I];

    }

    ?>




    قم بتشغيله بعد نقله لمجلد السيرفر

    الشرح
    الذي قمنا به في المثال السابق هو أننا قمنا بإنشاء مصفوفة لعده أشخاص
    ($boy) ونريد أن نعرف مرحلهم الدراسية في الثانوية فأنشأنا لكل طالب قائمة
    منسدلة بواسطة التكرار (list-each) بصناعة قوائم منسدلة وحقول مخفية يتم
    تخزين قيم الحقول (التي تحتوي على أسماء الأشخاص) في المصفوفة ($boy)
    وسيتم تخزين نتائج كل القوائم في مصفوفة ($school) وبعد أن يختار المستخدم
    الإجابات التي تناسبه وارسال البيانات سيتم استقبال المصفوفة التي فيها
    نتائج القوائم المنسدلة ($school) واستقبال المصفوفة التي فيها أسماء
    الأشخاص ($boy) ومن ثم يتم إنشاء مصفوفة جديدة باسم $friendschool[] ويؤخذ
    منها معلومات المصفوفتين ويتم دمجها فيها ومن ثم يتم بتكرار آخر طباعة
    عناصر المصفوفتين $boy و$school .




    تكرار foreach

    هذا التكرار هو من الأشياء الجديدة في الـphp4 وهو يساعدك على معرفة عناصر مصفوفة معينة أو طباعة محتوياتها .

    كود PHP:
    Foreach ($ArrayName As $ArrayItem)

    {

    code شفره

    }




    مثال :


    كود PHP:

    $T
    = array (a=>”ahmed “ , b => “basem”, c=>”car”)


    Foreach (
    $T As $A => $r)

    {

    echo
    $A .-----. $r;

    }

    ?>






    الدالة count

    تقوم بحساب عدد العناصر الموجودة في المصفوفة

    مثال :


    كود PHP:

    $c
    =array("a","b","c");

    $v=count($c);

    echo
    $v;

    ?>


    تحياتي






      الوقت/التاريخ الآن هو الأحد 19 نوفمبر 2017, 1:20 am