首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从多维数组中计算数组中的总数

如何从多维数组中计算数组中的总数
EN

Stack Overflow用户
提问于 2013-02-21 23:51:54
回答 4查看 87关注 0票数 0

我有一个来自报告的数组。

此报告包含类似于以下内容的信息:

代码语言:javascript
运行
复制
157479877294,OBSOLETE_ORDER,obelisk,19/01/2013 01:42pm
191532426695,WRONG_PERFORMANCE,g3t1,19/01/2013 01:56pm
159523681637,WRONG_PERFORMANCE,g3t1,19/01/2013 01:57pm
176481653889,WRONG_PERFORMANCE,g4t1,19/01/2013 01:57pm
167479810401,WRONG_PERFORMANCE,g4t1,19/01/2013 02:00pm
172485359309,WRONG_PERFORMANCE,g4t2,19/01/2013 02:02pm
125485358802,WRONG_PERFORMANCE,g4t2,19/01/2013 02:02pm
172485359309,DAY_LIMIT_EXCEEDED,obelisk,19/01/2013 02:03pm
125485358802,DAY_LIMIT_EXCEEDED,obelisk,19/01/2013 02:03pm

我需要做的是得到每种类型错误的总数和位置,所以第一个错误是错误:'OBSOLETE_ORDER‘和位置:’方尖碑‘。我尝试过很多方法,但我能想到的最好的方法是多维数组:

代码语言:javascript
运行
复制
$error_handle = fopen("$reportUrl", "r");
while (!feof($error_handle) )
   {
      $line_of_text = fgetcsv($error_handle, 1024);
      $errorName = $line_of_text[1];
      $scannerName = $line_of_text[2];
      if($errorName != "SCAN_RESULT" && $errorName != "" && $scannerName != "SCAN_LOGIN" && $scannerName != "")
          {
              $errorsArray["$errorName"]["$scannerName"]++;
          }
   }
fclose($error_handle);
print_r($errorsArray);

为我提供了以下内容:

代码语言:javascript
运行
复制
Array ( [OBSOLETE_ORDER] => Array ( [obelisk] => 1 ) [WRONG_PERFORMANCE] => Array ( [g3t1] => 2 [g4t1] => 2 [g4t2] => 2 ) [DAY_LIMIT_EXCEEDED] => Array ( [obelisk] => 2 ) )

哪一个是great...except然后我如何把它拆开添加到我的sql数据库中?!(我感兴趣的是在数组所在的key下获取key和该key的合计)

然后将其添加到表中

-错误-(索引)id_errors id_event id_access_scanner id_errors_type total_errors

-errors_type- (索引)id_errors_type name_errors_type

-access_scanner(索引)id_access_scanner id_portal name_access_scanner

请帮帮我!

谢谢!

EN

Stack Overflow用户

发布于 2013-02-22 01:04:18

代码语言:javascript
运行
复制
$list = array();
foreach ($lines as $line) {
    $values = explode(',' $line);
    $error = $values[1];
    $scanner = $values[2];
    if (!isset($list[$error])) {
         $list[$error] = array();
    }
    if (!isset($list[$error][$scanner])) {
         $list[$error][$scanner] = 1;
    } else {
         $list[$error][$scanner]++;
    }
}
票数 0
EN
查看全部 4 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15006537

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档