اذهب إلى المحتوى

السؤال

نشر

أحاول القيام ببعض الحسابات الرياضية من خلال أخذ بعض القيم التي يقوم المستخدم بإدخالها على حقول نصية، باستخدام php، لكن المشكل أن المستخدم يُدخل العديد من القيم مع فواصل تفصل بينها، وأريد إزالة هذه الفواصل.

مثلا يقوم المستخدم بإدخال القيم :3,2,4 وفي حقل آخر5,4,3,2,1 على أن أكتب شيفرة برمجية تقوم بعملية مجموع ضرب جميع أعداد الحقلين فيما بينها، بهذا الشكل:

3*5+3*4+3*3+3*2+3*1 + 2*5+2*4+2*3+2*2+2*1 + 4*5+4*4+4*3+4*2+4*1

وهده نتيجة محاولتي:

$first = $_POST['first'];
$second= $_POST['second'];

$maths = $first[0] * $second[0] + $first[0] * $second[1] + $first[0] * $second[2] + $first[0] * $second[3] + $first[0] * $second[4] + $first[0] * $second[5] + $first[1] * $second[0] + $first[1] * $second[1] + $first[1] * $second[2] + $first[1] * $second[3] + $first[1] * $second[4] + $first[1] * $second[5] + $first[2] * $second[0] + $first[2] * $second[1] + $first[2] * $second[2] + $first[2] * $second[3] + $first[2] * $second[4] + $first[2] * $second[5];
$result = "$first[0] * $second[0] + $first[0] * $second[1] + $first[0] * $second[2] + $first[0] * $second[3] + $first[0] * $second[4] + $first[0] * $second[5] + $first[1] * $second[0] + $first[1] * $second[1] + $first[1] * $second[2] + $first[1] * $second[3] + $first[1] * $second[4] + $first[1] * $second[5] + $first[2] * $second[0] + $first[2] * $second[1] + $first[2] * $second[2] + $first[2] * $second[3] + $first[2] * $second[4] + $first[2] * $second[5]";

echo "</br>";
echo "the question is $result";
echo "</br>";
echo  "the result is $maths ";

لكن بعد الحساب يظهر لي فواصل مع الأرقام، مما يعني أنها لم تُزَل بشكل كلي وصحيح، كيف أقوم بذلك؟

Recommended Posts

  • 0
نشر

سنستعمل دالة :

explode

والتي من شأنها أن تجعل من القيمة النصية للحقل، مصفوفة وذلك بإزالة الفواصل، ثم المرور على قيم المصفوفتين - لأن لدينا حقلين إثنين أي سينتج عنها مصفوفتين-، بواسطة حلقتي تكرار لكل منها مع إنجاز العمليات المذكورة في سؤالك، بهذا الشكل:

$sum=0;
    $question=array();

    $first=explode(',',$_POST['first']);
    $second=explode(',',$_POST['second']);

    for( $i=0; $i < count( $first ); $i++ ){

        $row=array();
        $tmp=array();

        for( $j=0; $j < count( $second ); $j++ ){
            $tmp[]='( '.$first[ $i ]. ' x '. $second[ $j ].' )';
            $row[]=$first[ $i ] * $second[ $j ];
        }
        $sum+=array_sum( $row );
        $question[]=implode( ' + ', $tmp );
    }
    echo 'The question is: [ ' . implode( ' ] + [ ', $question ).' ]<br />';
    echo 'Total: '.$sum;

  على أن يتم إظهار القيمة المحصول عليها في متغير sum$ آخر الكود.

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...