在PHP中将每个数组的值合并到一个数组数组中
我有一个为特定用户返回的模型对象,其中我得到了一个数组,如下所示:在PHP中将每个数组的值合并到一个数组数组中,php,arrays,Php,Arrays,我有一个为特定用户返回的模型对象,其中我得到了一个数组,如下所示: 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" ["tick
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循环的a端被调用,因此我可以得到很多这样的数组(每个数组都绑定到不同的用户)和Two:每个数组可以有两个以上的数组,实际上返回的一些数组最多可以有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方式? < P>我不认为这是巨大的:
$result = array();
foreach ($container as $innerArray) {
foreach ($innerArray as $key=>$value) {
$result[$key] = number_format($result[$key] + $value, 2);
}
}
var_dump($result);
。我更改了几个值,以表明它们实际上正在被添加。@LogicLooking:如果需要保留两位小数,只需使用
number\u format()
。我更新了我的答案,将其包括在内。