php 统计前十个不合格原因及其出现次数 2023-09-06

2023-09-05  本文已影响0人  阿然学编程
    /**
     * 统计前十个不合格原因及出现次数
     */
    public function countReasons()
    {
        $arr_chunk = array(
            array("id" => 1, "reasons" => "原因1,原因2,原因3"),
            array("id" => 2, "reasons" => "原因4,原因1,原因6"),
            array("id" => 3, "reasons" => "原因2,原因1,原因9"),
            array("id" => 4, "reasons" => "原因1,原因11,原因3"),
            array("id" => 5, "reasons" => "原因13,原因1,原因15"),
            array("id" => 6, "reasons" => "原因16,原因18,原因18"),
            array("id" => 7, "reasons" => "原因14,原因10,原因21"),
            array("id" => 8, "reasons" => "原因22,原因23,原因27"),
            array("id" => 9, "reasons" => "原因2,原因23,原因27"),
            array("id" => 10, "reasons" => "原因28,原因29,原因30")
        );

        $issueData = array(); // 存储每个不合格原因出现的次数

        // 对每个块进行处理
        foreach ($arr_chunk as $chunk) {

            // 循环拆分每个原始数据中的不合格原因
            $reasonsArr = explode(',',$chunk['reasons']);
//            dump($reasonsArr);
            // 对本块结构集合进行计数
            foreach ($reasonsArr as $reason) {
                $issue = trim($reason);
                if (!empty($issue)) {
                    if (!isset($issueData[$issue])) {
                        $issueData[$issue] = 0;
                    }
                    $issueData[$issue]++;
                }
            }
        }
        // 输出前十个不合格原因及其出现次数
        arsort($issueData);
        $top_ten = array_slice($issueData, 0, 10, true);
        dump($top_ten);
        echo implode(",", array_keys($top_ten));
    }
上一篇 下一篇

猜你喜欢

热点阅读