PHP配列を使用して結果をグループ化する方法

PHPz
リリース: 2023-04-27 10:29:07
オリジナル
1038 人が閲覧しました

PHP プログラムを作成する場合、多くの場合、配列を使用してデータを保存および処理する必要があります。生徒の成績管理システムでは、通常、データの統計と分析を改善するためにスコアをグループ化する必要があります。この記事では、PHP 配列を使用して成績をグループ化する方法について説明します。

1. 生徒のスコア配列を作成する

まず、各生徒のスコア情報を保存するための生徒のスコア配列を作成する必要があります。処理したいデータが次のとおりであるとします。

##学生 ID名前中文数学English##101102##103王五788085104 赵六889294105Qian Qi 928588##2 次元配列を使用してこれらのデータを保存できます。コードは次のとおりです。
$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)
);
ログイン後にコピー
このようにして、5 つの要素を含む配列を作成します。各要素は生徒の成績情報を表します。各要素は、各科目の学生の学生番号、名前、成績を含む連想配列です。
张三 85 90 78
李四 90 75 82

2. 成績に応じたグループ化

次に、成績に応じてグループ化する必要があります。合計スコアに従ってグループ分けし、合計スコアが 80 未満の生徒を 1 つのグループに、80 ~ 90 の生徒を別のグループに、90 を超える生徒を 3 番目のグループに分類するとします。ループを使用して生徒のスコア配列を走査し、各生徒の合計スコアを順番に計算し、生徒を対応するグループに分類できます。コードは次のとおりです。

$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;
    }
}
ログイン後にコピー

ここでは、学生情報の 3 つのグループを保存する 3 つの配列を定義します。次に、foreach ループを使用して各生徒のスコア情報を走査し、各生徒の合計スコアを計算し、対応するグループに分類します。

3. グループ化結果を出力する

最後に、さらなる統計と分析のためにグループ化結果を出力する必要があります。 foreach ループを使用して各グループの学生情報を走査し、学生の名前と合計スコアをページに出力できます。コードは次のとおりです。

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>';
}
ログイン後にコピー

ここでは、最初に各グループのタイトルを出力し、次に foreach ループを使用して各グループの学生情報を走査し、学生の合計スコアを計算し、学生の名前と合計を出力します。ページの上位にスコアを付けます。

4. 完全なコード

以下は、学生のスコア配列の作成、スコアのグループ化、およびグループ化結果の出力のためのコードを含む、完全な PHP コードです。

$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 . '
'; }
ログイン後にコピー

5. 概要

上記のコード実装により、生徒の成績情報の統計と分析を容易にするために、生徒をスコアに応じてグループ化し、合計スコアに基づいてグループ化することができます。同時に、この例では、PHP 配列を使用してデータの保存と処理の基本操作を実行する方法も示します。実際のアプリケーションでは、実際の状況に応じて、さまざまなグループ化方法とグループ化基準を選択し、改善する必要があります。

以上がPHP配列を使用して結果をグループ化する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート