首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

PHP 實作問卷優先級排序統計與量化分析

     編輯:PHP 相關知識

PHP 問卷排序結果統計:從原始資料到量化權重分析

處理數百份問卷的優先級排序資料(如 A>I>H>G>D...),目標是將這些定序資料轉換為可比較的量化分數,找出關鍵影響因子。本文分享一個實用的 PHP 統計方案。

應用場景與評分邏輯

假設問卷包含 10 項指標(A-J),受測者需按重要性排序。我們採用「名次遞減給分法」:第 1 名得 10 分、第 2 名得 9 分...第 10 名得 1 分。所有問卷的分數加總,即可得到各指標的相對重要性權重。

核心 PHP 實作程式碼

<?php
// 初始化 10 項指標分數陣列
$scores = array("A"=>0, "B"=>0, "C"=>0, "D"=>0, "E"=>0,
                "F"=>0, "G"=>0, "H"=>0, "I"=>0, "J"=>0);

$handle = fopen('./file.txt', 'r');
while (!feof($handle)) {
    $line = fgets($handle, 1024);
    $len = strlen($line);
    
    for ($i = 0; $i < $len; $i++) {
        $char = strtoupper($line[$i]);
        if (isset($scores[$char])) {
            // 排名越前(索引越小)分數越高:總長度 - 當前索引
            $scores[$char] += $len - $i;
        }
    }
}
fclose($handle);

// 依分數由高到低排序,保持鍵值關聯
arsort($scores);
var_dump($scores);
?>

程式碼關鍵點解析

  1. 關聯陣列儲存分數:以指標代碼為鍵,累計分數為值,直觀且易於後續排序。
  2. 檔案逐行讀取:使用 fopen/fgets 處理大型文字檔,避免一次性載入佔用過多記憶體。
  3. 權重計算公式:strlen($string) - $i 確保第一位獲得最高分(如 10 字串長度,索引 0 得 10 分,索引 9 得 1 分)。
  4. 大小寫不敏感:strtoupper() 統一處理,增強資料容錯率。
  5. 結果排序輸出:arsort() 依值降冪排序並保留鍵名,直接呈現重要性排名。

資料來源說明

file.txt 為純文字檔,每行代表一份問卷結果,格式如 ABCDEFGHIJ。作者提到資料錄入非手動完成,實務上建議改用線上問卷系統直接寫入資料庫,省去檔案轉換步驟並即時驗證資料格式。

擴充應用建議

  • 加入異常資料過濾(如重複字母、長度不符)
  • 支援加權平均、標準差等進階統計指標
  • 結合圖表庫(如 Chart.js)視覺化呈現結果
  • 改用資料庫儲存,支援多維度交叉分析(如依部門、年資分組統計)

這個輕量級方案非常適合中小規模問卷快速分析,幾行代碼即可將大量定序資料轉化為決策依據。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved