我最近问了一个问题,将数组的值合并到 php 中的数组数组中并得到了正确答案,它是如何出现问题的,无论我放置的 var 转储或回声如何,我都无法弄清楚。
使用相同的数组示例,如果我这样做提供了解决方案:
$result = array();
if(is_array($ticketLabors) && !empty($ticketLabors)){
foreach ($ticketLabors as $innerArray) {
foreach ($innerArray as $key=>$value) {
$result[$key] = number_format($result[$key] + $value, 2);
}
}
}
var_dump($result);
在这样的数组上:
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"
}
}
(请记住,这很像上一个问题,上面的数组里面可能有 70 个数组)
我得到类似的东西:
array(10) {
["ticket_labor_ot_travel_c"]=>
string(5) "0.00"
["ticket_labor_travel_c"]=>
string(5) "0.00"
["ticket_labor_ot_c"]=>
string(5) "0.00"
["ticket_labor_reg_c"]=>
string(5) "0.00"
["ticket_labor_user_id"]=>
string(5) "0.00"
["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"
}
一个数组,压缩了前一个数组数组的所有数组,并将它们$key=>$value
的 ' 添加在一起。
什么问题?不管我在哪里,var_dump
或者echo
是$key
,$value
甚至是$innerArray
我最终收到大量通知说:
注意:未定义索引:第 146 行 C:\xampp\htdocs\rms\site\web\module\Report\controller\Index.controller.php 中的ticket_labor_ot_travel_hours
中的每个键的每个通知都不同$innerArray
。所以我想让我们做if(isset($key) && isset($value)){ ... }
不,同样的问题。
我已经检查了外部数组,并且可以保证进来的就是我想要的,所有的键都设置好了。
如果您想知道第 146 行是什么:$result[$key] = number_format($result[$key] + $value, 2);
有什么帮助吗?