Heim > Backend-Entwicklung > PHP-Tutorial > 将已知数组按条件分为若个新数组

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

WBOY
Freigeben: 2016-06-23 14:24:47
Original
907 Leute haben es durchsucht

已知数组:

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',  ),)
Nach dem Login kopieren


能否按字段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',  ),...)
Nach dem Login kopieren


回复讨论(解决方案)

需求不明确~~

又来了?

$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);
Nach dem Login kopieren
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        ))
Nach dem Login kopieren

...
是啊。又是这种问题。
    [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          )

又来了?

不好意思,发现问过这个问题了,抱歉!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage