我有一个为特定用户返回的模型对象,其中我var_dump
ed对象并得到一个如下所示的数组:
array(2) {
[0]=>
array(10) {
["ticket_labor_ot_travel_c"]=>
string(5) "34.50"
["ticket_labor_travel_c"]=>
string(5) "23.00"
["ticket_labor_ot_c"]=>
string(5) "34.50"
["ticket_labor_reg_c"]=>
string(5) "23.00"
["ticket_labor_user_id"]=>
string(3) "319"
["ticket_labor_tot_hours"]=>
string(4) "0.50"
["ticket_labor_reg_hours"]=>
string(4) "0.50"
["ticket_labor_ot_hours"]=>
string(4) "0.00"
["ticket_labor_travel_hours"]=>
string(4) "0.00"
["ticket_labor_ot_travel_hours"]=>
string(4) "0.00"
}
[1]=>
array(10) {
["ticket_labor_ot_travel_c"]=>
string(4) "0.00"
["ticket_labor_travel_c"]=>
string(4) "0.00"
["ticket_labor_ot_c"]=>
string(4) "0.00"
["ticket_labor_reg_c"]=>
string(4) "0.00"
["ticket_labor_user_id"]=>
string(1) "0"
["ticket_labor_tot_hours"]=>
string(4) "0.00"
["ticket_labor_reg_hours"]=>
string(4) "0.00"
["ticket_labor_ot_hours"]=>
string(4) "0.00"
["ticket_labor_travel_hours"]=>
string(4) "0.00"
["ticket_labor_ot_travel_hours"]=>
string(4) "0.00"
}
}
现在我遇到的问题是, One:这个模型在for循环中被调用,因此我可以找回许多这些数组(这些数组中的每一个都绑定到不同的用户)和两个:每个数组都可以拥有,其中有两个以上的数组,实际上一些返回的数组最多可以有40个。
所以我想要做的就是,如果我们使用上面的数组作为例子,拿出那个数组并创建:
array(2) {
[0]=>
array(10) {
["ticket_labor_ot_travel_c"]=>
string(5) "34.50"
["ticket_labor_travel_c"]=>
string(5) "23.00"
["ticket_labor_ot_c"]=>
string(5) "34.50"
["ticket_labor_reg_c"]=>
string(5) "23.00"
["ticket_labor_user_id"]=>
string(3) "319"
["ticket_labor_tot_hours"]=>
string(4) "0.50"
["ticket_labor_reg_hours"]=>
string(4) "0.50"
["ticket_labor_ot_hours"]=>
string(4) "0.00"
["ticket_labor_travel_hours"]=>
string(4) "0.00"
["ticket_labor_ot_travel_hours"]=>
string(4) "0.00"
}
}
上面的数组是通过获取返回的数组数组中的所有数组创建的,将所有$key=>$value
一起添加到一起并返回一个包含所有数组的数组。所以在上面的例子的例子中,我把返回的数组中的两个数组,创建了一个具有相同键结构的数组,并将所有值加在一起,在这种情况下每个都是0,因此每个键的结果值是0
问题是 - 我找不到干净,有效的方法来做到这一点,我尝试的所有方法都是大量的循环,试图存储每个值....
有没有干净的OOP方式呢?
答案 0 :(得分:1)
我不认为这是大规模的:
$result = array();
foreach ($container as $innerArray) {
foreach ($innerArray as $key=>$value) {
$result[$key] = number_format($result[$key] + $value, 2);
}
}
var_dump($result);
Here is a demonstration。我更改了一些值,以表明它们实际上已被添加。