النتائج 1 إلى 10 من 10

الموضوع: shuffle لا تعمل لأكثر من عنصرين في المصفوفة!!

  1. #1
    عضو نشيط جدا
    تاريخ التسجيل
    Jul 2003
    المشاركات
    303

    shuffle لا تعمل لأكثر من عنصرين في المصفوفة!!



    قمت بتجربة عرض جمل بشكل عشوائي .. و الجمل مخزنة في مصفوفة

    مثلاً أريد أن أعرض في كل مرة رقم عشوائي من 1 إلى 16

    كتبت ما يلي :
    كود PHP:

    <?
    $a 
    = array("1""2""3""4","5""6",
        
    "7""8","9""10""11""12","13",
         
    "14""15""16");

    shuffle($a) ;

    echo 
    "<b>".$a[0];

    ?>
    اكتشفت أنه إذا كان عدد عناصر المصفوفة أكثر من اثنين لن يعرض سوى أول عنصر .. و لن تعمل shuffle

    قمت بعمل حل بهذا الكود
    كود PHP:

    <?

    $a 
    = array("1""2""3""4","5""6",
     
    "7""8","9""10""11""12","13",
      
    "14""15""16");

    $rand rand(015);
    echo 
    "<b>".$a[$rand]";

    ?>
    و لكن السؤال .. هل فعلاً shuffle لا تعمل مع مصفوفة أكثر من عنصرين ؟ أم أنا كتبت الكود بشكل ناقص ؟





    __________________
    إن كانَ عندك يا زمانُ بقيّةً
    ممّا يُهان بها الكرامُ فهاتها !
    __________
    يا أهل سوالف سوفت .. اكتبوا غير الـفاشل و لا تكتبوا الغير فاشل :) .. (غير) لا تُعرّف يرعاكم الله .
    omars غير متواجد حالياً


  2. #2
    عضو نشيط جدا
    تاريخ التسجيل
    Apr 2004
    المشاركات
    504


    السلام عليكم


    أخوي omars

    اذا بغيت تعرض رقم عشوائي مابين 1 الى 16

    هذا أهو الكود

    كود PHP:

    <?

    $a
    =rand(1,16);

    echo 
    $a ";

    ?>






    star4host غير متواجد حالياً

  3. #3
    عضو فعال
    تاريخ التسجيل
    Feb 2002
    المشاركات
    1,454


    دالة shuffle تعمل حتى مع المصفوفات التي تحتوي اكثر من عنصرين





    __________________
    شبكة مملكة العرب
    ---------------------
    استضافة مواقع تبدأ من 100 ريال سنويا
    خطط خاصة للموزعين
    سكربت دليل المواقع
    www.aknet.com
    code4arab غير متواجد حالياً

  4. #4
    عضو نشيط جدا
    تاريخ التسجيل
    Jul 2003
    المشاركات
    303


    رد مقتبس من code4arab
    دالة shuffle تعمل حتى مع المصفوفات التي تحتوي اكثر من عنصرين
    لم تعمل معي إلا لمصفوفة ذات عنصرين فقط ..

    هل لديك مثال ؟
    أو الخطأ في الكود الذي في الموضوع .. و سبّب ايقاف عمل shuffle

    ?





    __________________
    إن كانَ عندك يا زمانُ بقيّةً
    ممّا يُهان بها الكرامُ فهاتها !
    __________
    يا أهل سوالف سوفت .. اكتبوا غير الـفاشل و لا تكتبوا الغير فاشل :) .. (غير) لا تُعرّف يرعاكم الله .
    omars غير متواجد حالياً

  5. #5
    عضو نشيط جدا
    تاريخ التسجيل
    Jul 2003
    المشاركات
    303


    رد مقتبس من aa25
    السلام عليكم


    أخوي omars

    اذا بغيت تعرض رقم عشوائي مابين 1 الى 16

    هذا أهو الكود

    كود PHP:

    <?

    $a
    =rand(1,16);

    echo 
    $a ";

    ?>
    أهلاً
    أنا لم أقصد عرض الأرقام .. إنما هي اختصار بدلاً عن كتابة مصفوفة عناصرها جمل طويلة

    شكراً لكَ ..





    __________________
    إن كانَ عندك يا زمانُ بقيّةً
    ممّا يُهان بها الكرامُ فهاتها !
    __________
    يا أهل سوالف سوفت .. اكتبوا غير الـفاشل و لا تكتبوا الغير فاشل :) .. (غير) لا تُعرّف يرعاكم الله .
    omars غير متواجد حالياً



  6. sorry for not witing in arabic .. coz i don't have an arabic keyboard

    if you go to www.php.net/shuffle you will see from the example that it said that you must have srand() to make your shuffle function to work .. this is the actual example you will find on that page

    كود PHP:
    <?php 
    $numbers 
    range(1,20); 
    srand((float)microtime()*1000000); 
    shuffle($numbers); 
    while (list(, 
    $number) = each($numbers)) { 
       echo 
    "$number "

    ?>

    so you need to have srand() .. hope this will clear it out for you .. ok .. sallam





    __________________
    هلابي افضل المواقع العربية تصميماً
    انصح باستخدام ابونتو
    hilaby غير متواجد حالياً

  7. #7
    عضو نشيط جدا
    تاريخ التسجيل
    Apr 2004
    المشاركات
    504


    أسف أخوي omars

    ما فهمتك عدل

    إنشالله الأخوان يساعدونك لأني ما لي خبره أكبيره في مجال php


    وشكراً لكم يا أخوان


    أخوكم حمد





    star4host غير متواجد حالياً

  8. #8
    عضو سوبر نشيط
    تاريخ التسجيل
    Nov 2003
    المشاركات
    821


    السلام عليكم ورحمة الله
    اخي hilaby

    srand كانت تستخدم في النسخ القديمة من php ولكن في النسخة الرابعة , (لا اذكر تحديدا ) فتم الاستغناء عنها





    __________________
    www.abu3amer.com
    أبوعامر غير متواجد حالياً



  9. al sallam, fist of all thank you abu3amir for the note.. yes when i tested it it actualy printed out results with out any problems and it did shuffle but what did surprised me is that . when i do this
    كود PHP:
    <?
    $a 
    = array("a","b","c","d","e","f","g","h","i","j","k");
    shuffle($a);
    print_r($a);
    ?>
    and do it like 10 times or even more it gives me the same results all the time, though i'm using PHP 4.3.4 and i also tested it on my server which was using PHP 4.3.8 gives me the same results all the time .. so when i added the srand line

    كود PHP:
    <?
    srand
    ((float)microtime() * 1000000); // added this line
    $a = array("a","b","c","d","e","f","g","h","i","j","k");
    shuffle($a);
    print_r($a);
    ?>
    then i had different results .. do you have any idea in why is that though at http://my.php.net/shuffle
    said that from 4.2.0 you don't have to include srand coz it does it automaticly

    http://my.php.net/shuffle
    Note: As of PHP 4.2.0, there is no need to seed the random number generator with srand() or mt_srand() as this is now done automatically.






    __________________
    هلابي افضل المواقع العربية تصميماً
    انصح باستخدام ابونتو
    hilaby غير متواجد حالياً

  10. #10
    عضو سوبر نشيط
    تاريخ التسجيل
    Nov 2003
    المشاركات
    821


    السلام عليكم ورحمة الله وبركاته
    العفو اخي

    اعتقد السبب انك عملت srand وبذلك فكل مرة ستقوم باعطائك نتيجة مختلفة بسببها , لانها ستقوم بتغيير الترتيب





    __________________
    www.abu3amer.com
    أبوعامر غير متواجد حالياً





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

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

أضف موقعك هنا| اخبار السيارات | حراج | شقق للايجار في الكويت | بيوت للبيع في الكويت | دليل الكويت العقاري | مقروء | شركة كشف تسربات المياه | شركة عزل اسطح بالرياض | عزل فوم بالرياض| عزل اسطح بالرياض | كشف تسربات المياة بالرياض | شركة عزل اسطح بالرياض