Click here to Skip to main content
15,881,248 members
Please Sign up or sign in to vote.
1.00/5 (1 vote)
See more:
I have two arrays. I am comparing those arrays through loop and calculating results but It is always making ascending order by the array indexes. I need to create order after calculation with those values in descending order.

The output is
Student with roll number 101 scores 1
Student with roll number 102 scores 2


I need the output by descending order with scores.
Student with roll number 102 scores 2
Student with roll number 101 scores 1


What I have tried:

<?php
$correctAnswers = [
['name'=> 1, 'value'=> 4]'
['name'=> 1, 'value'=> 1]
];

$submittedStudentData =[
[101, 0, 1, 1],
[102, 0, 4, 1]
];

if(!is_array($submittedStudentData))
{
    $submittedStudentData = json_decode($submittedStudentData);
}


for ($index = 0; $index < count($submittedStudentData); $index++){

   // get each student data
   $studentData = $submittedStudentData[$index];

   // get the student roll number
   $studentId = $studentData[0];


   // initialize the total result with zero pre value
   $totalResult = 0;

// loop through the student's submitted answer
for ($i = 2; $i < count($studentData); $i++) 
{
   if ((int)$studentData[$i] === (int)$correctAnswers[$i - 2]["value"])
  {
    $totalResult++;
  }
}


// final result for this student
echo 'Student with roll number '. $studentId .' scores '. $totalResult."\n";


}
?>
Posted
Updated 6-Mar-22 22:00pm

1 solution

So reverse the order in your for loop:
PHP
for ($index = count($submittedStudentData) - 1; $index >= 0; $index--)
PHP: for - Manual[^]
 
Share this answer
 
Comments
Member 15557213 7-Mar-22 9:45am    
If the output is
Student with roll number 101 scores 1
Student with roll number 103 scores 3
Student with roll number 102 scores 2
Student with roll number 105 scores 5


I need the output like
Student with roll number 105 scores 5
Student with roll number 103 scores 3
Student with roll number 102 scores 2
Student with roll number 101 scores 1
Richard Deeming 7-Mar-22 9:46am    
Then you need to sort your array before you loop over it.
PHP: Sorting Arrays - Manual[^]

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900