PHP计算数组数据

时间:2018-01-11 19:38:24

标签: php arrays

我无法计算数组值的总和 我的数组是

$bar_chart_data = 
array(
    array(
        array("Data1",548.25),
        array("Data2",238.75),
        array("Data3",95.50),
        array("Data4",300.50),
        array("Data5",286.80),
        array("Data6",148.25)
        )
    );

我使用这个PHP代码来计算结果,但它总是给我 0

$sumArray = array();
foreach ($bar_chart_data as $k=>$subArray) {
    foreach ($subArray as $id=>$value) {
        $sumArray[$id]+=$value;
    }
}

print_r($sumArray);

3 个答案:

答案 0 :(得分:2)

您的$id在所有迭代中都有所不同。

您必须使用$sumArray[$k]+=$value[1];

您还需要在两个$sumArray[$k]之间初始化0foreach

答案 1 :(得分:0)

我相信你有一个包含子数组的数组,你想得到每个子数组中所有值的总和。

我建议您使用关联子数组来简化任务。

Declare @YourTable Table ([Phone] varchar(50))
Insert Into @YourTable Values 
 ('(888) 477-8977x110')
,('(888) 477-8977 ext 110')
,('(888) 477-8977 extention 110')
,('(888) 477-8977 e 110')
,('888.477.8977ext110')
,('(888) 477-8977')


Select * 
      ,Ext = ltrim(NullIf(reverse(ltrim(left(reverse(Phone),patindex('%[a-z]%',reverse(Phone)+'a')-1))),Phone))
 From  @YourTable

答案 2 :(得分:0)

您只需要一个循环,然后在索引1处提取值并将它们相加:

foreach($bar_chart_data as $values) {
    $sumArray[] = array_sum(array_column($values, 1));
}

如果需要,您可以添加$k => $values并使用$sumArray[$k],但无论数据显示方式如何,它都可以正常运行。