当前位置:Gxlcms > PHP教程 > 数组拆分处理(整数时的处理),该怎么处理

数组拆分处理(整数时的处理),该怎么处理

时间:2021-07-01 10:21:17 帮助过:15人阅读

数组拆分处理(整数时的处理)
已知数组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'];
$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项生成?
------解决方案--------------------
本帖最后由 xuzuning 于 2013-12-27 15:34:48 编辑

$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;

人气教程排行