将已知数组按条件分为若个新数组

littlebirds 2013-10-22 04:16:45
已知数组:
array (
0 =>
array (
'po_num' => 'DYNP-770266110-00',
'plant' => 'DYNP',
'get_date' => '2013-09-09',
'cust_no' => '12654172',
'total' => '615',
'snp' => '15',
'mount' => '41',
'lp_no' => 'P000000D',
),
1 =>
array (
'po_num' => 'DYNP-770266110-00',
'plant' => 'DYNP',
'get_date' => '2013-09-09',
'cust_no' => '12647212',
'total' => '60',
'snp' => '15',
'mount' => '4',
'lp_no' => 'P000000D',
),
)


能否按字段total为100为单位把数组再分为若干个新的数组?并加上序号字段在其中,比如:

array (
'po_num' => '1/7',//新增字段信息
'po_num' => 'DYNP-770266110-00',
'plant' => 'DYNP',
'get_date' => '2013-09-09',
'cust_no' => '12654172',
'total' => '615',
'snp' => '15',
'mount' => '41',
'lp_no' => 'P000000D',
),
...
...全文
169 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
littlebirds 2013-10-23
  • 打赏
  • 举报
回复
引用 2 楼 xuzuning 的回复:
又来了?
不好意思,发现问过这个问题了,抱歉!
littlebirds 2013-10-23
  • 打赏
  • 举报
回复
引用 2 楼 xuzuning 的回复:
...
是啊。又是这种问题。 [6] => Array ( [po_no] => 7/7 [po_num] => DYNP-770266110-00 [plant] => DYNP [get_date] => 2013-09-09 [cust_no] => 12654172 [total] => 15 ) [7] => Array ( [po_num] => DYNP-770266110-00 [plant] => DYNP [get_date] => 2013-09-09 [cust_no] => 12647212 [total] => 60 ) 这个能不能作为一项来处理?将原来的数组并到前一个数组中,而不是重新计算$i/$n的序列号。变成这样的形式: [6] => Array ( [po_no] => 7/7 [po_num] => DYNP-770266110-00 [plant] => DYNP [get_date] => 2013-09-09 [cust_no] => 12654172 [total] => 15 ) [7] => Array ( [po_no] => 7/7 [po_num] => DYNP-770266110-00 [plant] => DYNP [get_date] => 2013-09-09 [cust_no] => 12647212 [total] => 60 //15+60=75 < 100 )
xuzuning 2013-10-22
  • 打赏
  • 举报
回复
又来了?
$ar = array (
  0 => 
  array (
    'po_num' => 'DYNP-770266110-00',
    'plant' => 'DYNP',
    'get_date' => '2013-09-09',
    'cust_no' => '12654172',
    'total' => '615',
    'snp' => '15',
    'mount' => '41',
    'lp_no' => 'P000000D',
  ),
  1 => 
  array (
    'po_num' => 'DYNP-770266110-00',
    'plant' => 'DYNP',
    'get_date' => '2013-09-09',
    'cust_no' => '12647212',
    'total' => '60',
    'snp' => '15',
    'mount' => '4',
    'lp_no' => 'P000000D',
  ),
);
$split_num = 100;
foreach($ar as $item) {
  if($item['total'] <= $split_num) {
    $res[] = $item;
    continue;
  }
  $total = $item['total'];
  $n = ceil($total/$split_num);
  for($i=1; $i<$n; $i++) {
    $res[] = array_merge(array('po_nume' => "$i/$n"), $item, array('total' => $split_num));
  }
  $res[] = array_merge(array('po_nume' => "$i/$n"), $item, array('total' => $total%$split_num));
}
print_r($res);
Array
(
    [0] => Array
        (
            [po_nume] => 1/7
            [po_num] => DYNP-770266110-00
            [plant] => DYNP
            [get_date] => 2013-09-09
            [cust_no] => 12654172
            [total] => 100
            [snp] => 15
            [mount] => 41
            [lp_no] => P000000D
        )

    [1] => Array
        (
            [po_nume] => 2/7
            [po_num] => DYNP-770266110-00
            [plant] => DYNP
            [get_date] => 2013-09-09
            [cust_no] => 12654172
            [total] => 100
            [snp] => 15
            [mount] => 41
            [lp_no] => P000000D
        )

    [2] => Array
        (
            [po_nume] => 3/7
            [po_num] => DYNP-770266110-00
            [plant] => DYNP
            [get_date] => 2013-09-09
            [cust_no] => 12654172
            [total] => 100
            [snp] => 15
            [mount] => 41
            [lp_no] => P000000D
        )

    [3] => Array
        (
            [po_nume] => 4/7
            [po_num] => DYNP-770266110-00
            [plant] => DYNP
            [get_date] => 2013-09-09
            [cust_no] => 12654172
            [total] => 100
            [snp] => 15
            [mount] => 41
            [lp_no] => P000000D
        )

    [4] => Array
        (
            [po_nume] => 5/7
            [po_num] => DYNP-770266110-00
            [plant] => DYNP
            [get_date] => 2013-09-09
            [cust_no] => 12654172
            [total] => 100
            [snp] => 15
            [mount] => 41
            [lp_no] => P000000D
        )

    [5] => Array
        (
            [po_nume] => 6/7
            [po_num] => DYNP-770266110-00
            [plant] => DYNP
            [get_date] => 2013-09-09
            [cust_no] => 12654172
            [total] => 100
            [snp] => 15
            [mount] => 41
            [lp_no] => P000000D
        )

    [6] => Array
        (
            [po_nume] => 7/7
            [po_num] => DYNP-770266110-00
            [plant] => DYNP
            [get_date] => 2013-09-09
            [cust_no] => 12654172
            [total] => 15
            [snp] => 15
            [mount] => 41
            [lp_no] => P000000D
        )

    [7] => Array
        (
            [po_num] => DYNP-770266110-00
            [plant] => DYNP
            [get_date] => 2013-09-09
            [cust_no] => 12647212
            [total] => 60
            [snp] => 15
            [mount] => 4
            [lp_no] => P000000D
        )

)

丢雷老谋 2013-10-22
  • 打赏
  • 举报
回复
需求不明确~~

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧