首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >计算不同单元的关联数组

计算不同单元的关联数组
EN

Stack Overflow用户
提问于 2015-11-21 18:53:42
回答 1查看 29关注 0票数 0

我试图把某一危险元素的所有数量加起来,它有多个单元类型。如果单位没有列出,那么它将根本不包括在内(例如,没有0值)。然后以基于键的替代格式返回总计数组。

我会亲自尝试,但我想我会把它弄得一团糟。有人能建议一种优雅的方法来计算我的元素数组以获得所需的结果吗?

阵列:

代码语言:javascript
复制
//Raw Data to be caculated

Array ( 
    [0] => Array ( [hazard] => irritant [quantity] => 1 [unit] => F)
    [1] => Array ( [hazard] => corrosive [quantity] => 2 [unit] => F ) 
    [2] => Array ( [hazard] => health [quantity] => 1 [unit] => F ) 
    [3] => Array ( [hazard] => toxic [quantity] => 1 [unit] => F ) 
    [4] => Array ( [hazard] => environmental [quantity] => 4 [unit] => l )       
    [5] => Array ( [hazard] => health [quantity] => 1 [unit] => l ) 
    [6] => Array ( [hazard] => toxic [quantity] => 2 [unit] => l ) 
    [7] => Array ( [hazard] => irritant [quantity] => 4 [unit] => g ) 
    [8] => Array ( [hazard] => corrosive [quantity] => 2 [unit] => g ) 
    [9] => Array ( [hazard] => toxic [quantity] => 3 [unit] => g ) 
    [10] => Array ( [hazard] => irritant [quantity] => 3 [unit] => K ) 
    [11] => Array ( [hazard] => toxic [quantity] => 2 [unit] => K ) 
    [12] => Array ( [hazard] => environmental [quantity] => 1 [unit] => V ) 
    [13] => Array ( [hazard] => health [quantity] => 2 [unit] => V ) 
    [14] => Array ( [hazard] => irritant [quantity] => 2 [unit] => l ) 
    [15] => Array ( [hazard] => toxic [quantity] => 3 [unit] => l ) 
    [16] => Array ( [hazard] => corrosive [quantity] => 3 [unit] => g ) 
    [17] => Array ( [hazard] => environmental [quantity] => 4 [unit] => g )) 

    etc

期望的结果:

代码语言:javascript
复制
//Array of totaled unit types

Array ( 
   [irritant] => Array( [g] => 4 [l] => 12, [K] => 5, [F] => 2),  
   [corrosive] => Array( [g] => 3 [l] => 7, [K] => 5),
   [hazard] => Array( [g] => 12 [l] => 18, [V] => 2)) 

   etc
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-21 19:09:36

在插入/更新目标数组的结果之前,需要创建目标数组并循环原始数组,进行测试和计算。就像这样:

代码语言:javascript
复制
<?php
$clean = array();
foreach ($raw_array as $r) {
    $type = $r['hazard'];
    $unit = (isset($r['unit'])) ? $r['unit'] : "";
    $qty = $r['quantity'];
    if (!empty($r['unit'])) // or any other filter for the units
    {
        $clean[$type][$unit] = (isset($clean[$type][$unit])) ?
            $clean[$type][$unit] + $qty :
            $qty;
    }
}
?>

现在,您的$clean变量以所需的结构保存信息。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33847283

复制
相关文章

相似问题

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