How to group results using php array

PHPz
Release: 2023-04-27 10:29:07
Original
1033 people have browsed it

When writing PHP programs, you often need to use arrays to store and process data. For student performance management systems, we usually need to group scores for better statistics and analysis of data. This article will explain how to use PHP arrays to group grades.

1. Create a student score array

First, we need to create a student score array to store the score information of each student. Suppose the data we want to process is as follows:

##Student IDName中文MATHEMATICSEnglish##101102103104 105##We can use a two-dimensional array to store these data, the code is as follows :
$score = array(
    array('id' => 101, 'name' => '张三', 'chinese' => 85, 'math' => 90, 'english' => 78),
    array('id' => 102, 'name' => '李四', 'chinese' => 90, 'math' => 75, 'english' => 82),
    array('id' => 103, 'name' => '王五', 'chinese' => 78, 'math' => 80, 'english' => 85),
    array('id' => 104, 'name' => '赵六', 'chinese' => 88, 'math' => 92, 'english' => 94),
    array('id' => 105, 'name' => '钱七', 'chinese' => 92, 'math' => 85, 'english' => 88)
);
Copy after login
张三 85 90 78
李四 90 75 82
王五 78 80 85
赵六 88 92 94
Qian Qi 92 85 88
In this way, we create an array containing five elements, each element represents the performance information of a student. Each element is an associative array that contains the student's student number, name, and grades in each subject.

2. Grouping according to grades

Next, we need to group according to grades. Suppose we want to group according to the total score, and put students with a total score of less than 80 into one group, students with a score of 80-90 into another group, and students with a score above 90 into a third group. We can use a loop to traverse the student score array, calculate the total score of each student in turn, and classify them into the corresponding groups. The code is as follows:

$group1 = array(); //80分以下
$group2 = array(); //80-90分
$group3 = array(); //90分以上

foreach ($score as $item) {
    $total = $item['chinese'] + $item['math'] + $item['english']; //计算总分

    if ($total < 80) {
        $group1[] = $item;
    } elseif ($total >= 80 && $total < 90) {
        $group2[] = $item;
    } else {
        $group3[] = $item;
    }
}
Copy after login

Here we define three arrays to store three groups of student information. Then use a foreach loop to traverse the score information of each student, calculate the total score of each student, and classify them into the corresponding groups.

3. Output the grouping results

Finally, we need to output the grouping results for further statistics and analysis. We can use a foreach loop to traverse the student information of each group and output the student's name and total score to the page. The code is as follows:

echo &#39;<h2>80分以下</h2>';
foreach ($group1 as $item) {
    $total = $item['chinese'] + $item['math'] + $item['english'];
    echo $item['name'] . ':' . $total . '<br>';
}

echo '<h2>80-90分</h2>';
foreach ($group2 as $item) {
    $total = $item['chinese'] + $item['math'] + $item['english'];
    echo $item['name'] . ':' . $total . '<br>';
}

echo '<h2>90分以上</h2>';
foreach ($group3 as $item) {
    $total = $item['chinese'] + $item['math'] + $item['english'];
    echo $item['name'] . ':' . $total . '<br>';
}
Copy after login
Here we first output the title of each group, then use a foreach loop to traverse the student information of each group, calculate the student's total score, and output the student's name and total score to the page superior.

4. Complete code

The following is the complete PHP code, including the code for creating the student score array, grouping the scores and outputting the grouping results.

$score = array(
    array('id' => 101, 'name' => '张三', 'chinese' => 85, 'math' => 90, 'english' => 78),
    array('id' => 102, 'name' => '李四', 'chinese' => 90, 'math' => 75, 'english' => 82),
    array('id' => 103, 'name' => '王五', 'chinese' => 78, 'math' => 80, 'english' => 85),
    array('id' => 104, 'name' => '赵六', 'chinese' => 88, 'math' => 92, 'english' => 94),
    array('id' => 105, 'name' => '钱七', 'chinese' => 92, 'math' => 85, 'english' => 88)
);

$group1 = array(); //80分以下
$group2 = array(); //80-90分
$group3 = array(); //90分以上

foreach ($score as $item) {
    $total = $item['chinese'] + $item['math'] + $item['english']; //计算总分

    if ($total < 80) {
        $group1[] = $item;
    } elseif ($total >= 80 && $total < 90) {
        $group2[] = $item;
    } else {
        $group3[] = $item;
    }
}

echo '

80分以下

'; foreach ($group1 as $item) {     $total = $item['chinese'] + $item['math'] + $item['english'];     echo $item['name'] . ':' . $total . '
'; } echo '

80-90分

'; foreach ($group2 as $item) {     $total = $item['chinese'] + $item['math'] + $item['english'];     echo $item['name'] . ':' . $total . '
'; } echo '

90分以上

'; foreach ($group3 as $item) {     $total = $item['chinese'] + $item['math'] + $item['english'];     echo $item['name'] . ':' . $total . '
'; }
Copy after login
5. Summary

Through the above code implementation, we can group students according to their scores and group students according to their total scores to facilitate better statistics and analysis of students' performance information. At the same time, this example also shows how to use PHP arrays to perform basic operations of storing and processing data. Different grouping methods and grouping basis also need to be selected and improved according to the actual situation in actual applications.

The above is the detailed content of How to group results using php array. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template