数组拆分处理(整数时的处理)
程序员文章站
2024-02-03 22:44:10
...
已知数组a:
处理程序如下:
得到的结果:
既然是整除,那么结果应该只有一项,如何修改代码让其只有非0项生成?
array ( 0 => array ( 'po_num' => '20131227-000008102', 'plant' => 'JQSP', 'get_date' => '2013-12-27', 'cust_no' => '12654172', 'total' => '225', 'snp' => '15', 'mount' => '15', 'lp_no' => 'P000000D', ),)
处理程序如下:
$t = 225;$k = 0;foreach($a as $v) {$t1 = $v['total'];$v['total'] = $t1 % $t;$res[$k][] = $v;$t1 -= $v['total'];while($t1 >= $t) {$v['total'] = $t;$t1 -= $t;$res[++$k][] = $v; } }$res = array_reverse($res);print_r($res);
得到的结果:
Array( [0] => Array ( [0] => Array ( [po_num] => 20131227-000008102 [plant] => JQSP [get_date] => 2013-12-27 [cust_no] => 12654172 [total] => 225 [snp] => 15 [mount] => 15 [lp_no] => P000000D ) ) [1] => Array ( [0] => Array ( [po_num] => 20131227-000008102 [plant] => JQSP [get_date] => 2013-12-27 [cust_no] => 12654172 [total] => 0 //产生了为0的项 [snp] => 15 [mount] => 15 [lp_no] => P000000D ) ))
既然是整除,那么结果应该只有一项,如何修改代码让其只有非0项生成?
回复讨论(解决方案)
想复杂了吧,你想要什么结果,或者可以换一种思路。
$a = array ( 0 => array ( 'po_num' => '20131227-000008102', 'plant' => 'JQSP', 'get_date' => '2013-12-27', 'cust_no' => '12654172', 'total' => '225', 'snp' => '15', 'mount' => '15', 'lp_no' => 'P000000D', ),);$t = 225;$k = 0; foreach($a as $v) { $t1 = $v['total']; if($t1 % $t) $v['total'] = $t1 % $t; $res[$k][] = $v; $t1 -= $v['total']; while($t1 >= $t) { $v['total'] = $t; $t1 -= $t; $res[++$k][] = $v; }}$res = array_reverse($res);print_r($res);
Array( [0] => Array ( [0] => Array ( [po_num] => 20131227-000008102 [plant] => JQSP [get_date] => 2013-12-27 [cust_no] => 12654172 [total] => 225 [snp] => 15 [mount] => 15 [lp_no] => P000000D ) ))