2016-08-18 112 views
-3

我试图在关键字匹配时从关联数组中添加值。最终的目标是要实现这样的输出能力:从关联数组中添加值如果键匹配

Total Ups: 219
Aug. 1 Ups: 105
Aug. 2 Ups: 52
Aug. 3 Ups: 62

我有下面这工作数组值的一笔:

foreach($array as $key => $value){ 
    foreach ($value['report']['daily']['ups'] as $rec){ 
    $upsArr[] = $rec; 
    } 
} 

echo array_sum($upsArr); 

但是,当我试图计算总计一个日期,比如8月1日,我似乎无法完成任何成功的第二级密钥。我有以下,看看是否能得到所需的水平:提前

$array = array(
    array(
    store => 'South', 
    report => array(
     daily => array(
     ups => array('Aug. 1' => '19', 'Aug. 2' => '11', 'Aug. 3' => '13'), 
     sold => array('Aug. 1' => '11', 'Aug. 2' => '5', 'Aug. 3' => '5') 
    )), 
), 
    array(
    store => 'East', 
    report => array(
     daily => array(
     ups => array('Aug. 1' => '38', 'Aug. 2' => '22', 'Aug. 3' => '23'), 
     sold => array('Aug. 1' => '16', 'Aug. 2' => '8', 'Aug. 3' => '8') 
    )), 
), 
    array(
    store => 'West', 
    report => array(
     daily => array(
     ups => array('Aug. 1' => '48', 'Aug. 2' => '19', 'Aug. 3' => '26'), 
     sold => array('Aug. 1' => '28', 'Aug. 2' => '4', 'Aug. 3' => '11') 
    )), 
) 
) 

感谢:

foreach($array as $key => $subArr){ 
    foreach($subArr as $id => $value['report']['daily']['ups'][1]){ 
    print_r($value); 
    } 
} 

这里是我一起工作的阵列。

+1

哪里是 “关联数组”?预期结果在哪里? –

+0

请阅读[我可以询问哪些主题](http://stackoverflow.com/help/on-topic) 和[如何提出一个好问题](http://stackoverflow.com/help/how-to - 问) 和[完美的问题](http://codeblog.jonskeet.uk/2010/08/29/writing-the-perfect-question/) 以及如何创建[最小,完整和可验证的例子] (http://stackoverflow.com/help/mcve) SO是**不是一个免费的编码或代码转换或调试或教程或库查找服务** 您还必须表明,你已经努力解决你自己的问题。 – RiggsFolly

+0

感谢您的链接,我给他们一个阅读并改进了问题和格式。 – proph3t

回答

1

检查了这一点

$detail = []; 
foreach ($array as $item){ 
    foreach ($item['report']['daily']['ups'] as $date=>$total){ 
     if (!array_key_exists($date, $detail)){ 
      $detail[$date] = $total; 
     }else{ 
      $detail[$date] += $total; 
     } 
    } 
} 
// int 219 
var_dump(array_sum($detail)); 

var_dump($detail); 
/* 
array (size=3) 
'Aug. 1' => int 105 
'Aug. 2' => int 52 
'Aug. 3' => int 62 
*/ 
+0

谢谢 - 这一切都很有意义,因为在尝试循环访问子阵列之前,我没有循环访问数组。 – proph3t

相关问题