CI中

2016-05-17 38 views
0

我想補充一點,我從數據庫得到的值增加數據庫值關陣列..CI中

我有

Array ( 
[0] => stdClass Object ([TOTAL_TIME] => 10.58) 
[1] => stdClass Object ([TOTAL_TIME] => 9.23) 
[2] => stdClass Object ([TOTAL_TIME] => 10.35) 
[3] => stdClass Object ([TOTAL_TIME] => 10.10) 
[4] => stdClass Object ([TOTAL_TIME] => 9.95) 
[5] => stdClass Object ([TOTAL_TIME] => 3.40) 
[6] => stdClass Object ([TOTAL_TIME] => 9.90) 
[7] => stdClass Object ([TOTAL_TIME] => 10.63) 
[8] => stdClass Object ([TOTAL_TIME] => 10.48) 
[9] => stdClass Object ([TOTAL_TIME] => 9.43) 
[10] => stdClass Object ([TOTAL_TIME] => 6.42) 
[11] => stdClass Object ([TOTAL_TIME] => 10.12) 
[12] => stdClass Object ([TOTAL_TIME] => 9.33) 
[13] => stdClass Object ([TOTAL_TIME] => 5.53) 
[14] => stdClass Object ([TOTAL_TIME] => 9.35) 
[15] => stdClass Object ([TOTAL_TIME] => 9.60) 
[16] => stdClass Object ([TOTAL_TIME] => 10.08) 
[17] => stdClass Object ([TOTAL_TIME] => 10.03) 
[18] => stdClass Object ([TOTAL_TIME] => 7.73) 
[19] => stdClass Object ([TOTAL_TIME] => 16.82) 
[20] => stdClass Object ([TOTAL_TIME] => 16.55)) 

輸出我想要做的就是添加這些值。

我已經做

$sum = array_sum($data) 

但它不工作。我得到的唯一輸出是0.

我該如何添加它?

+0

輸出不是數組>它是一個object.So array_sum將不起作用 –

+0

如何添加這些值 –

+1

[codeigniter,result()與result \ _array()](http:// stackoverflow.com/questions/16506789/codeigniter-result-vs-result-array) – Farside

回答

2

循環陣列上,總結各objectTOTAL_TIME屬性的值加在一起。

$sum = 0; 
foreach ($array as $object){ 
    $sum += $object->TOTAL_TIME; 
} 

print $sum; 

您還可以使用array_walk作爲替代循環

$sum = 0; 
array_walk($array,function($object) use (&$sum){ 
    $sum += $object->TOTAL_TIME; 
}); 

print $sum; 
0

如果你想在價值變量和存儲TOTAL_TIME試試這個

$total_time = 0; 
if (!empty($data)) { 
    foreach ($data as $value) { 
     $total_time += $value->TOTAL_TIME; 
    } 
} 

如果你從數據庫中的數據,我建議在查詢中使用SUM,所以我們返回變量,不需要執行foreach循環。

0
$array = (array) $yourObject; 

然後你申請array_sum

1

您可以使用array_reduce

$total_time = array_reduce($arr, function($carry, $item) { 
    return $carry += $item->TOTAL_TIME; 
}, 0); 

array_reduce @ php.net

0

使用此代碼

function convertObjectToArrayWithSum($data) 
{ 
    if (is_object($data)) 
    { 
     $data = get_object_vars($data); 
    } 
    if (is_array($data)) 
    { 
     $input = array_map(__FUNCTION__, $data); 
     array_walk_recursive($input, function($item, $key) use (&$final) { 
      $final[$key] = isset($final[$key]) ? $item + $final[$key] : $item; 
     }); 
     return $final; 
    } 
    return $data; 
} 
print_r(convertObjectToArrayWithSum($data));