2015-01-14 2 views
2

Я намерен оценивать элементы массива с числовой индексацией в php с помощью вызова функции; мой вызов функции не работает: это не класс элементов, и я не могу понять ошибку в code.Please помочь Спасибо, заранееИспользование функции 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>"; 

    ?> 

ответ

2

Вы передаете $ й в вашу функцию, то вызывая $ счета , Ваш массив баллов также находится в строчном формате, просто нужно удалить кавычки, чтобы сделать их номерами. Также измените $ 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

ваших элементов массива в строку .convert всех элементов в Int используя

gradeArray($x){ 
$score=(int)$x; 
} 

Попробуйте это будет работать

1

во-первых, скорее всего $score не определено в функции, так как вы используете $x.

function gradeArray($x){ 

Тогда вы используете свои условия как if($score>= 70){.

Кроме того, в ваших возвращаемых значениях используйте return.

return"A"; // and others 

return Использование не echo так, что эта конкатенация echo "<td>". gradeArray($score); работы.

0

$score не определен в переменной, то функция выборки переменную $x попытаться изменить $score к $x или определить $score., вы можете использовать global $score также в функции. Кроме того, вы должны возвращать значения вместо эха используйте код ниже

<?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>"; 

    ?> 

Надеется, что это помогает вам

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>"; 
?> 
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]; 
} 
Смежные вопросы