PHP でデータのグループ化と統計関数を実装する方法

王林
リリース: 2023-09-24 13:42:02
オリジナル
1152 人が閲覧しました

PHP でデータのグループ化と統計関数を実装する方法

PHP でデータのグループ化と統計関数を実装する方法

実際の開発プロセスでは、データのグループ化と統計の必要性に遭遇することがよくあります。データベース内のデータの統計をグループ化する場合でも、配列内のデータを操作する場合でも、PHP はニーズを満たす豊富な関数とメソッドを提供します。

以下では、PHP でデータベースと配列データをグループ化およびカウントする方法を示します。

データベース内のデータのグループ化と統計

次の構造を持つ生徒の成績表があるとします。

CREATE TABLE `scores` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `student_id` int(11) NOT NULL,
  `subject` varchar(50) NOT NULL,
  `score` decimal(5,2) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
ログイン後にコピー

各生徒の合計スコアと平均を計算したいとします。ポイント。グループ化と統計には次のコードを使用できます。

// 连接数据库
$pdo = new PDO('mysql:host=localhost;dbname=test', 'username', 'password');

// 查询数据
$query = "SELECT student_id, SUM(score) AS total, AVG(score) AS average FROM scores GROUP BY student_id";
$stmt = $pdo->prepare($query);
$stmt->execute();
$results = $stmt->fetchAll(PDO::FETCH_ASSOC);

// 输出结果
foreach ($results as $result) {
    echo "学生ID:" . $result['student_id'] . ",总分:" . $result['total'] . ",平均分:" . $result['average'] . "<br>";
}
ログイン後にコピー

上記のコードでは、PDO を使用してデータベースに接続し、クエリ ステートメントを実行して、結果を $results 配列に保存します。最後に、各生徒の合計スコアと平均スコアが foreach ループを通じて出力されます。

配列データのグループ化と統計

学生のグループを含む配列があるとします。各学生には、次のように、名前、年齢、学年の 3 つの属性があります:

$students = [
    ['name' => '张三', 'age' => 18, 'score' => 85],
    ['name' => '李四', 'age' => 19, 'score' => 92],
    ['name' => '王五', 'age' => 20, 'score' => 78],
    ['name' => '赵六', 'age' => 18, 'score' => 89],
    ['name' => '钱七', 'age' => 19, 'score' => 95],
    ['name' => '孙八', 'age' => 20, 'score' => 82],
];
ログイン後にコピー

生徒を年齢別にグループ化し、各グループの生徒の平均点と最高点を計算したいと考えています。以下は、グループ化と統計を実装するコードです。

// 按照年龄分组
$groups = [];
foreach ($students as $student) {
    $age = $student['age'];
    if (!isset($groups[$age])) {
        $groups[$age] = [];
    }
    $groups[$age][] = $student;
}

// 统计每个分组中的平均分和最高分
foreach ($groups as $age => $group) {
    $total = 0;
    $maxScore = 0;
    foreach ($group as $student) {
        $total += $student['score'];
        if ($student['score'] > $maxScore) {
            $maxScore = $student['score'];
        }
    }
    $average = $total / count($group);
    echo "年龄:" . $age . ",平均分:" . $average . ",最高分:" . $maxScore . "<br>";
}
ログイン後にコピー

上記のコードでは、まず foreach ループを使用して学生を年齢に従ってグループ化し、$groups 配列に格納します。次に、ネストされた foreach ループを通じて各グループを走査し、平均スコアと最高スコアを計算し、最後に結果を出力します。

上記のコード例を通じて、PHP を使用してデータのグループ化と統計関数を実装する方法を確認できます。データベース内のデータを操作する場合でも、配列内のデータを操作する場合でも、ニーズに応じて適切な実装方法を選択できます。これらの機能は実際の開発において非常に一般的であり、データ分析やレポート作成などの分野で広く使用されています。

以上がPHP でデータのグループ化と統計関数を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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