假设数组a:
array (
  0 => 
  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',
  ),
  1 => 
  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',
  ),
)当满足整个total为一定条件时,将数组拆分开来。例中total为675,假设拆分条件为total满足225,也就是拆分为3个数组,如何能将数组拆分成这样?//b
array (
  0 => 
  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',
  ),
  1 => 
  array (
    'po_num' => 'DYNP-770266110-00',
    'plant' => 'DYNP',
    'get_date' => '2013-09-09',
    'cust_no' => '12654172',
    'total' => '165',
    'snp' => '15',
    'mount' => '11',
    'lp_no' => 'P000000D',
  ),
)
//c
array (
  0 => 
  array (
    'po_num' => 'DYNP-770266110-00',
    'plant' => 'DYNP',
    'get_date' => '2013-09-09',
    'cust_no' => '12647212',
    'total' => '225',
    'snp' => '15',
    'mount' => '15',
    'lp_no' => 'P000000D',
  ),

//d
array (
  0 => 
  array (
    'po_num' => 'DYNP-770266110-00',
    'plant' => 'DYNP',
    'get_date' => '2013-09-09',
    'cust_no' => '12647212',
    'total' => '225',
    'snp' => '15',
    'mount' => '15',
    'lp_no' => 'P000000D',
  ),

解决方案 »

  1.   

    $a = array (
      0 => 
      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',
      ),
      1 => 
      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',
      ),
    );
    $t = 225;
    foreach($a as $v) {
      $t1 = $v['total'];
      $v['total'] = $t1 % $t;
      $res[] = $v;
      $t1 -= $v['total'];
      while($t1 >= $t) {
        $v['total'] = $t;
        $t1 -= $t;
        $res[] = $v;
      }
    }
    print_r($res);Array
    (
        [0] => 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
            )    [1] => Array
            (
                [po_num] => DYNP-770266110-00
                [plant] => DYNP
                [get_date] => 2013-09-09
                [cust_no] => 12654172
                [total] => 165
                [snp] => 15
                [mount] => 41
                [lp_no] => P000000D
            )    [2] => Array
            (
                [po_num] => DYNP-770266110-00
                [plant] => DYNP
                [get_date] => 2013-09-09
                [cust_no] => 12654172
                [total] => 225
                [snp] => 15
                [mount] => 41
                [lp_no] => P000000D
            )    [3] => Array
            (
                [po_num] => DYNP-770266110-00
                [plant] => DYNP
                [get_date] => 2013-09-09
                [cust_no] => 12654172
                [total] => 225
                [snp] => 15
                [mount] => 41
                [lp_no] => P000000D
            ))
      

  2.   


    如果mount项的值也发生改变,是不是和这个一样?
      

  3.   

    能不能获取这样的结果?
    Array
    (
    [0]=>Array

        [0] => 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
            )    [1] => Array
            (
                [po_num] => DYNP-770266110-00
                [plant] => DYNP
                [get_date] => 2013-09-09
                [cust_no] => 12654172
                [total] => 165
                [snp] => 15
                [mount] => 41
                [lp_no] => P000000D
            )
    )[1] => Array
            (
                [po_num] => DYNP-770266110-00
                [plant] => DYNP
                [get_date] => 2013-09-09
                [cust_no] => 12654172
                [total] => 225
                [snp] => 15
                [mount] => 41
                [lp_no] => P000000D
            )[2] => Array
            (
                [po_num] => DYNP-770266110-00
                [plant] => DYNP
                [get_date] => 2013-09-09
                [cust_no] => 12654172
                [total] => 225
                [snp] => 15
                [mount] => 41
                [lp_no] => P000000D
            )
    )
      

  4.   

    当然可以,不过有什么意义呢?$a = array (
      0 => 
      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',
      ),
      1 => 
      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',
      ),
    );
    $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;
      }
    }
    print_r($res);Array
    (
        [0] => Array
            (
                [0] => 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
                    )            [1] => Array
                    (
                        [po_num] => DYNP-770266110-00
                        [plant] => DYNP
                        [get_date] => 2013-09-09
                        [cust_no] => 12654172
                        [total] => 165
                        [snp] => 15
                        [mount] => 41
                        [lp_no] => P000000D
                    )        )    [1] => Array
            (
                [po_num] => DYNP-770266110-00
                [plant] => DYNP
                [get_date] => 2013-09-09
                [cust_no] => 12654172
                [total] => 225
                [snp] => 15
                [mount] => 41
                [lp_no] => P000000D
            )    [2] => Array
            (
                [po_num] => DYNP-770266110-00
                [plant] => DYNP
                [get_date] => 2013-09-09
                [cust_no] => 12654172
                [total] => 225
                [snp] => 15
                [mount] => 41
                [lp_no] => P000000D
            ))
      

  5.   

    我是想记循环输出的结果,foreach($res1 as $value)这样。
      

  6.   

    我用了array_chunk,怎么结果变成了这样?Array
    (
        [0] => Array
            (
                [0] => Array
                    (
                        [0] => 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
                            )                    [1] => Array
                            (
                                [po_num] => DYNP-770266110-00
                                [plant] => DYNP
                                [get_date] => 2013-09-09
                                [cust_no] => 12654172
                                [total] => 165
                                [snp] => 15
                                [mount] => 11
                                [lp_no] => P000000D
                            )                )        )    [1] => Array
            (
                [0] => Array
                    (
                        [po_num] => DYNP-770266110-00
                        [plant] => DYNP
                        [get_date] => 2013-09-09
                        [cust_no] => 12654172
                        [total] => 225
                        [snp] => 15
                        [mount] => 15
                        [lp_no] => P000000D
                    )        )    [2] => Array
            (
                [0] => Array
                    (
                        [po_num] => DYNP-770266110-00
                        [plant] => DYNP
                        [get_date] => 2013-09-09
                        [cust_no] => 12654172
                        [total] => 225
                        [snp] => 15
                        [mount] => 15
                        [lp_no] => P000000D
                    )        ))能否变成这样?Array
    (
        [0] => Array
            (
              [0] => 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
               )          [1] => Array
              (
                   [po_num] => DYNP-770266110-00
                   [plant] => DYNP
                   [get_date] => 2013-09-09
                   [cust_no] => 12654172
                   [total] => 165
                   [snp] => 15
                   [mount] => 11
                   [lp_no] => P000000D           )        )    [1] => Array
            (
                [0] => Array
                    (
                        [po_num] => DYNP-770266110-00
                        [plant] => DYNP
                        [get_date] => 2013-09-09
                        [cust_no] => 12654172
                        [total] => 225
                        [snp] => 15
                        [mount] => 15
                        [lp_no] => P000000D
                    )        )    [2] => Array
            (
                [0] => Array
                    (
                        [po_num] => DYNP-770266110-00
                        [plant] => DYNP
                        [get_date] => 2013-09-09
                        [cust_no] => 12654172
                        [total] => 225
                        [snp] => 15
                        [mount] => 15
                        [lp_no] => P000000D
                    )        ))
      

  7.   

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