使用php函数对数字索引数组的元素进行分级

时间:2015-01-14 06:50:48

标签: php

我打算使用函数调用在php中对数字索引数组的元素进行分级;我的函数调用不起作用:它没有对元素进行分级,我无法弄清代码中的错误。请帮助 提前谢谢

 <?php

//function intended to  grade array elements

    function gradeArray($x){
        if($score>= 70){
    echo"A";


     }


       elseif($score >= 50){


     echo"B";
    }
    elseif($score>= 40){


     echo"C";


     }


     else{
    echo"F";


     }
    }

    // Array of Scores to be graded


      $scores = array ("55", "68", "43", "78");
//Display result in a tabular form


     echo"<table  border = '1'><th>Score</th><th>Grade</th>";

    foreach($scores as $score){



     echo"<tr><td>";



      echo$score."</td>";

    echo"<td>". gradeArray($score);

    echo"</td></tr>";



      }



       echo"</table>";

    ?>

6 个答案:

答案 0 :(得分:2)

你将$ x传递给你的函数然后调用$ score。 您的得分数组也是字符串格式,只需删除引号即可使它们成为数字。 同时将$ x更改为$ score,它应该可以正常工作! :)

<?php
//function intended to  grade array elements
function gradeArray($score) {
   if     ($score >= 70)  return "A";
   elseif ($score >= 50)  return "B";
   elseif ($score >= 40)  return "C";
   else                   return "F";
}

// Array of Scores to be graded
$scores = array (55, 68, 43, 78);

//Display result in a tabular form
echo "<table border='1'><th>Score</th><th>Grade</th>";

foreach ($scores as $score) {
    echo "<tr><td>$score</td><td>" . gradeArray($score) . "</td></tr>";
}

echo "</table>";
?>

答案 1 :(得分:1)

你的数组元素是字符串。使用

将所有元素转换为int
    gradeArray($x){
$score=(int)$x;
}

试试这个会起作用

答案 2 :(得分:1)

首先,由于您使用$score,因此您的函数中很可能未定义$x

function gradeArray($x){

然后您使用if条件if($score>= 70){

此外,在您的返回值中,只需使用return

return"A"; // and others

使用return而非echo,以便此联合echo "<td>". gradeArray($score);有效。

答案 3 :(得分:0)

您的变量中未定义

$score,该函数将变量提取为$x尝试将$score更改为$x或定义$score.,您可以在您的函数中也使用global $score。你也应该返回值而不是使用echo使用下面的代码

<?php

//function intended to  grade array elements

    function gradeArray($x){
$score=$x;
        if($score>= 70){
    return "A";


     }


       elseif($score >= 50){


     return "B";
    }
    elseif($score>= 40){


    return "C";


     }


     else{
    return "F";


     }
    }

    // Array of Scores to be graded


      $scores = array ("55", "68", "43", "78");
//Display result in a tabular form


     echo"<table  border = '1'><th>Score</th><th>Grade</th>";

    foreach($scores as $score){



     echo"<tr><td>";



      echo$score."</td>";

    echo"<td>". gradeArray($score);

    echo"</td></tr>";



      }



       echo"</table>";

    ?>

希望这有助于你

答案 4 :(得分:0)

试试这个

<?php

//function intended to  grade array elements

function gradeArray($x) {
    if ($x >= 70) {
        return "A";
    } elseif ($x >= 50) {

        return "B";
    } elseif ($x >= 40) {

        return "C";
    } else {
        return "F";
    }
}

// Array of Scores to be graded


$scores = array("55", "68", "43", "78");
//Display result in a tabular form


echo"<table  border = '1'><th>Score</th><th>Grade</th>";

foreach ($scores as $score) {



    echo"<tr><td>";



    echo$score . "</td>";

    echo"<td>" . gradeArray($score);

    echo"</td></tr>";
}



echo"</table>";
?>

答案 5 :(得分:0)

function grading( $marks ){
    $grade = mysql_query("SELECT grade_name,grade_point FROM table_name **strong text**WHERE smark <= round($marks) AND hmark >= round($marks)");

     $gd = mysql_fetch_row( $grade );

     return $gd[0];
}