在 CodeIgniter 中添加数组的数据库值
add database value off array in CodeIgniter
我想添加从数据库中获取的值..
我的输出是
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.
如何添加?
如果你想存储值的可变总和TOTAL_TIME试试这个
$total_time = 0;
if (!empty($data)) {
foreach ($data as $value) {
$total_time += $value->TOTAL_TIME;
}
}
如果您从数据库中获取数据,我建议在查询中使用 SUM,这样我们 return 变量就不需要执行 foreach 循环。
$array = (array) $yourObject;
那你申请array_sum
遍历数组并将每个 object
的 TOTAL_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;
您可以使用 array_reduce
:
$total_time = array_reduce($arr, function($carry, $item) {
return $carry += $item->TOTAL_TIME;
}, 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));
我想添加从数据库中获取的值..
我的输出是
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.
如何添加?
如果你想存储值的可变总和TOTAL_TIME试试这个
$total_time = 0;
if (!empty($data)) {
foreach ($data as $value) {
$total_time += $value->TOTAL_TIME;
}
}
如果您从数据库中获取数据,我建议在查询中使用 SUM,这样我们 return 变量就不需要执行 foreach 循环。
$array = (array) $yourObject;
那你申请array_sum
遍历数组并将每个 object
的 TOTAL_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;
您可以使用 array_reduce
:
$total_time = array_reduce($arr, function($carry, $item) {
return $carry += $item->TOTAL_TIME;
}, 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));