🎉 سال نو، مهارت نو، مشاوره رایگان نقشه راه برنامه نویسی (آفر ویژه ثبت نام قبل از افزایش قیمت 🔥)
۰ ثانیه
۰ دقیقه
۰ ساعت
۱ محمد خضرپور
پروژه اطلاعات دانش اموزان
امیر صالحی حل شده توسط امیر صالحی

ببخشید یک مشکلی دارم ممنن میشم کمکم کنید 

یه جدولی دارم یک سری اطلاعات از دانشجویان نشون میده که اطلاعات به صورت ارایه‌های چند بعدی هست و یکی از ارایه‌های داخلی نمرات دانشجویان هستش 

و میخوام تو جدولم در اخر جمع نمرات اونا رو هم نمایش بدم 

بدون او جمع نمران مشکلی ندارم و اطلاعات رو با foreach نمایش میدم و لی نمیدونم چطوری از او تابع جمع نمرات تو foreach استفاده کنم که تکرار بشه و فقط برای یک دانشجو نمایش میده 

لطفا کمک کنبد

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
    td{
        border: 1px solid black;
    }
    table{
        position: relative;
        left: 500px;
        top: 300px;
    }
    </style>
</head>
<body>
    <?php 
    $studen=array(
        "1000"=>[
            "name"=>"saman",
            "pass"=>1214,
            "marks"=>[12,13,14,18,12,14,9]
        ],
        "1001"=>[
            "name"=>"sami",
            "pass"=>1215,
            "marks"=>[3,8,14,7,12,18,9]
        ],
        "1002"=>[
            "name"=>"erfan",
            "pass"=>1216,
            "marks"=>[10,3,5,20,7,9,9]
        ],
        "1003"=>[
            "name"=>"mohammad",
            "pass"=>1217,
            "marks"=>[12,13,14,18,12,14,9]
        ],
    );
    $students=json_decode(json_encode($studen));
    foreach ($students as $student => $value) {
        function sumMarks ( $marks){
            $base = 0 ;
            if (count($marks) <= 7) {
                for ($i=0; $i < count($marks); $i++) { 
                    $base = $marks[$i] + $base ;
                }
                return $base;
            }else {
                return "Tahts bull shit!!";
            }
        } 
    ?>
    <table>
    <thead>
        <tr>
        <td><strong> name </strong></td>        
        <td><strong> pass </strong></td>        
        <td><strong> marks </strong></td>        
        <td><strong> sumMarks </strong></td>        
        </tr>
    </thead>
    <tbody>
    <tr>
    <td><?php echo $value->name;  ?></td>
    <td><?php echo $value->pass;  ?></td>
    <td><?php echo implode(",",$value->marks) ;  ?></td>    
    <td><?php echo sumMarks($value->marks);  ?></td>    
    </tr>
    </tbody>
    </table>
    <?php
     }
    ?>
</body>
</html>

سلام و احترام

ایراد اینه که شما تعریف تابع رو داخل یک تابع قرار دادید و این تابع سعی میکنه که بیشتر از یک بار تعریف بشه که به خطا میخوره، شما باید یک بار تابع رو تعریف کنید و بعد اون رو داخل foreach صداش بزنید و ازش استفاده کنید:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
    td{
        border: 1px solid black;
    }
    table{
        position: relative;
        left: 500px;
        top: 300px;
    }
    </style>
</head>
<body>
    <?php 
    $studen=array(
        "1000"=>[
            "name"=>"saman",
            "pass"=>1214,
            "marks"=>[12,13,14,18,12,14,9]
        ],
        "1001"=>[
            "name"=>"sami",
            "pass"=>1215,
            "marks"=>[3,8,14,7,12,18,9]
        ],
        "1002"=>[
            "name"=>"erfan",
            "pass"=>1216,
            "marks"=>[10,3,5,20,7,9,9]
        ],
        "1003"=>[
            "name"=>"mohammad",
            "pass"=>1217,
            "marks"=>[12,13,14,18,12,14,9]
        ],
    );
    function sumMarks ($marks){
        $base = 0 ;
        if (count($marks) <= 7) {
            for ($i=0; $i < count($marks); $i++) { 
                $base = $marks[$i] + $base ;
            }
            return $base;
        }else {
            return "That's bull shit!!";
        }
    } 
    $students=json_decode(json_encode($studen));
    foreach ($students as $student => $value) {
        $marks = $value->marks;
        echo sumMarks ($marks)
    ?>
    <table>
    <thead>
        <tr>
        <td><strong> name </strong></td>        
        <td><strong> pass </strong></td>        
        <td><strong> marks </strong></td>        
        <td><strong> sumMarks </strong></td>        
        </tr>
    </thead>
    <tbody>
    <tr>
    <td><?php echo $value->name;  ?></td>
    <td><?php echo $value->pass;  ?></td>
    <td><?php echo implode(",",$value->marks) ;  ?></td>    
    <td><?php echo sumMarks($value->marks);  ?></td>    
    </tr>
    </tbody>
    </table>
    <?php
     }
    ?>
</body>
</html>

 

بهترین پاسخ
امیر صالحی ۱۵ فروردین ۱۴۰۰، ۱۸:۱۵