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

الموضوع: دوال replace ومشكلة الارقام

  1. #1
    عضو نشيط
    تاريخ التسجيل
    Sep 2006
    المشاركات
    61

    دوال replace ومشكلة الارقام



    السلام عليكم

    بشكل بسيط جداً مشكلتي كالتالي
    كود PHP:
    <?
    $num
    =123;

    $array = array(
      
    '1' =>'20',
      
    '2' =>'30',
      
    '3' =>'40',

        );
    echo 
    str_replace(array_keys($array), $array $num);

    ?>
    المطلوب الرقم 123 يتحول إلى 203040

    كيف الطريقة ؟

    بالشكل اللي فوق راح يكون الناتج 400040040







  2. #2


    خوي الغالي

    ادخل هذه الصفحة تجد ما تريد

    PHP: str_replace - Manual





    __________________
    إِنْ لَمْ تُحْسِنْ ظنَّكَ بِهِ لِأَجْلِ وَصْفِهْ فَحَسِّنْ
    ظَنَّكَ بِهِ لِأَجْلِ مُعَامَلَتِهِ مَعَكْ فَهَلْ عَوَّدَكَ إِلَّا حَسَنًا؟
    وَهَلْ أَسْدَى إِلَيْكَ إِلَّا مِنَنًا؟

  3. #3
    عضو شرف
    تاريخ التسجيل
    May 2007
    المشاركات
    1,647


    كود PHP:
    <? 
    $num
    =123

    $array = array( 
      
    '3' =>'40'
      
    '2' =>'30'
      
    '1' =>'20'
        
    ); 
    echo 
    str_replace(array_keys($array), $array $num); 

    ?>






    __________________
    # اتبعني على Twitter
    # عِرفان ساهم ببناء المحتوى العربي العلمي على الإنترنت!

  4. #4
    عضو نشيط جدا
    تاريخ التسجيل
    Aug 2007
    المشاركات
    320


    كود PHP:
    <?php


    $num
    =123

    $array = array( 
      
    '3' =>'40'
      
    '2' =>'30'
      
    '1' =>'20'
        
    ); 

    echo 
    replace_number($num$array);

    function 
    replace_number($num$array)
    {
        
    $num = (string) $num;
        
    $return '';
        for(
    $i=0$istrlen($num); ++$i)
            
    $return .= $array[$num[$i]]; 
                
        return 
    $return;
    }
    ?>






    __________________
    إلى اللقاء سوالف , وآسف على الإزعاج...
    moffed.com , kleeja.com/tour/ar ,phpbbarabia.com

  5. #5
    عضو نشيط
    تاريخ التسجيل
    Sep 2006
    المشاركات
    69


    كود PHP:
    <?php

    $num 
    123;

    $array = array(
      
    '1' =>'20',
      
    '2' =>'30',
      
    '3' =>'40',
    );
    $array array_reverse($arraytrue);

    echo 
    str_replace(array_keys($array), $array $num);

    ?>
    تقريبا نفس حل أشرف السمهوري, لكن لربما البيانات يكون مصدرها من فورم مثلا بالتالي الأفضل عكس المصفوفة برمجياً

    أما سبب رجوع الرقم 400040040 بدل من الرقم المتوقع هو ان اللي بيحصل كالتالي:
    مع أول استبدال الرقم 123 بيتحول الي 2023 ومع تاني استبدال بيبقي 300303 ومع الاستبدال الأخير 400040040
    علشان كده الحل كان يكمن في عكس ترتيب عناصر المصفوفة ويتم الاستبدال كالتالي
    123 => 1240 => 13040 => 203040

    أتمني الرد يكون واضح, وآسف علي عدم التواجد في سوالف بكثرة





    __________________
    كود PHP:
    <?php live('free') OR die('hard'); ?>

  6. #6
    عضو نشيط
    تاريخ التسجيل
    Sep 2006
    المشاركات
    61


    عكس المصفوفه حل مو مناسب , مصفوفتي مو بالشكل اللي فوق بالتمام انا حطيته لمجرد التوضيح وسبب ظهور القيمة مثل ماقلت اخوي التصميم ان الدالة ماتستبدل كل القيم في عملية وحده

    saanina
    فكره حلوه لكن فرضاً لكن افرض اضفها عنصر جديد للمصفوفه

    $array = array(
    '1' =>'20',
    '2' =>'30',
    '3' =>'40',
    '12' =>'50',

    );
    المشكلة ان الفنكشن يفرض ان قيمة المصفوفة متسلسله وهذا إحتمال مو وارد , المشكلة الثانية أن الفنكشن ياخذ بترتيب تسلسلي من الاسفل للاعلى ولو فرضاً ان المصفوفة متسلسلة فراح يكون فيه مشكلة في القيم أكبر من 9 , هذي تنحل بأخذ الترتيب من الاعلى للاسفل






  7. #7
    عضو نشيط جدا
    تاريخ التسجيل
    Sep 2006
    المشاركات
    547


    استخدم التابع strtr وستحل مشكلتك






  8. #8
    عضو نشيط
    تاريخ التسجيل
    Sep 2006
    المشاركات
    69


    استخدم التابع strtr وستحل مشكلتك
    كلمة أبرك من عشرة :nice:

    strtr() will always look for the longest possible match first and will *NOT* try to replace stuff that it has already worked on






    __________________
    كود PHP:
    <?php live('free') OR die('hard'); ?>

  9. #9
    عضو نشيط
    تاريخ التسجيل
    Sep 2006
    المشاركات
    61


    DNSerror
    يعطيك العافية اصبت المطلوب
    وشكر للحبيب التصميم على متابعة الموضوع






  10. #10
    Banned
    تاريخ التسجيل
    Jul 2008
    المشاركات
    178


    جرب التابع strtr وبإذن الله رح تحلها

    جرب وما رح تندم










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

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

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