Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP中将每个数组的值合并到一个数组数组中_Php_Arrays - Fatal编程技术网

在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()
。我更新了我的答案,将其包括在内。