如何在组数组中添加值

时间:2015-03-12 21:25:00

标签: php arrays

我有以下数组数据结构:

[0] => 11111    Order   2121                                                    
[1] => 11111    Order   2121    10.21                           
[2] => 11111    Order   2121                                                
[3] => 11111    Order   2121    -1.11                                   
[4] => 22222    Order   33313   11.00                               
[5] => 22222    Order   33313   -1.45                                                   
[6] => 22222    Order   33313       

我可以通过循环指定字段位置来获取值,如下所示: -

    foreach($data as $row) {
    $columns= explode("\t", $row);
    $order_type = $fields[1];
    ...

但是因为我有相同的数据(11111),我无法弄清楚如何迭代获取第4列中的值,因为我想从10.21中删除-1.11,例如,只显示总价值。一些具有相同ID的行是空白的,因此导致我出现问题。

1 个答案:

答案 0 :(得分:1)

将标签转换为空格只是为了让我的测试更容易:

<?php
$data = array(
'11111 Order 2121',
'11111 Order 2121 10.21',
'11111 Order 2121',
'11111 Order 2121 -1.11',
'22222 Order 33313 11.00',
'22222 Order 33313 -1.45',
'22222 Order 33313');

$new = array();
foreach($data as $row){
    $fields = explode(" ",$row);


    if(!empty($fields[3])){
        $new[$fields[0]] += $fields[3];
    }
}
print_r($new);

输出:

Array
(
    [11111] => 9.1
    [22222] => 9.55
)

工作演示:http://codepad.org/MLjwMAiW