ホームページ >バックエンド開発 >PHPチュートリアル >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 サイトの他の関連記事を参照してください。