ホームページ >バックエンド開発 >PHPチュートリアル >配列の分割処理(整数の処理)

配列の分割処理(整数の処理)

WBOY
WBOYオリジナル
2016-06-13 12:30:44777ブラウズ

配列の分割処理(整数の処理)
既知の配列 a:

array (<br />
  0 => <br />
  array (<br />
    'po_num' => '20131227-000008102',<br />
    'plant' => 'JQSP',<br />
    'get_date' => '2013-12-27',<br />
    'cust_no' => '12654172',<br />
    'total' => '225',<br />
    'snp' => '15',<br />
    'mount' => '15',<br />
    'lp_no' => 'P000000D',<br />
  ),<br />
)


処理手順は以下のとおりです。
<br />
$t = 225;<br />
$k = 0;<br />
<br />
foreach($a as $v) {<br />
$t1 = $v['total'];<br />
$v['total'] = $t1 % $t;<br />
$res[$k][] = $v;<br />
$t1 -= $v['total'];<br />
while($t1 >= $t) {<br />
$v['total'] = $t;<br />
$t1 -= $t;<br />
$res[++$k][] = $v;<br />
	}<br />
	}<br />
$res = array_reverse($res);<br />
print_r($res);<br />


得られた結果:
Array<br />
(<br />
    [0] => Array<br />
        (<br />
            [0] => Array<br />
                (<br />
                    [po_num] => 20131227-000008102<br />
                    [plant] => JQSP<br />
                    [get_date] => 2013-12-27<br />
                    [cust_no] => 12654172<br />
                    [total] => 225<br />
                    [snp] => 15<br />
                    [mount] => 15<br />
                    [lp_no] => P000000D<br />
                )<br />
<br />
        )<br />
<br />
    [1] => Array<br />
        (<br />
            [0] => Array<br />
                (<br />
                    [po_num] => 20131227-000008102<br />
                    [plant] => JQSP<br />
                    [get_date] => 2013-12-27<br />
                    [cust_no] => 12654172<br />
                    [total] => 0 //产生了为0的项<br />
                    [snp] => 15<br />
                    [mount] => 15<br />
                    [lp_no] => P000000D<br />
                )<br />
<br />
        )<br />
<br />
)


整数の除算であるため、結果には項目が 1 つだけ含まれるはずです。ゼロ以外の項目のみが生成されるようにコードを変更するにはどうすればよいですか?

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。