首頁 > php教程 > PHP源码 > 主體

AA制分账

PHP中文网
發布: 2016-05-25 17:09:07
原創
1222 人瀏覽過

php代码

<?php
header(&#39;content-type: text/html; charset=utf-8&#39;);
/**
 * AA账目
 * @author heping1
 */
class account{
	public $accounts;
	public $income;
	public $pay; 
	public $desc;
	function __construct($accounts)
	{
		foreach($accounts as $k=>$v)
    	{
    		if($v > 0)
    		{
    			$arr_income[$k] = $v;
    		}elseif($v < 0)
    		{
    			$arr_pay[$k] = $v;
    		}
    	}
    	arsort($arr_income);
		asort($arr_pay);
		$this->income = $arr_income;
		$this->pay = $arr_pay;
	}
    function AA()
    {
    	foreach($this->income as $k=>&$v)
    	{
    		foreach($this->pay as $k1=>&$v1)
    		{
    			if($v + $v1 > 0)
    			{
    				$this->desc[] = $k.&#39;给&#39;.$k1.($v1 * -1).&#39;元&#39;;
    				$this->income[$k] = $v + $v1;
    				unset($this->pay[$k1]);
    				$this->AA();
    			}else
    			{
    				$this->desc[] = $k.&#39;给&#39;.$k1.$v.&#39;元&#39;;
    				$this->pay[$k1] = $v + $v1;
    				unset($this->income[$k]);
    				$this->AA();
    			}
    		}
    	}
    }
}
$accounts = array(
	&#39;A&#39;=>50, // A总共需要支付的金额为50
	&#39;B&#39;=>40,
	&#39;C&#39;=>10,
	&#39;D&#39;=>-20, // D需要收取的金券为20
	&#39;E&#39;=>-30,
	&#39;F&#39;=>-20,
	&#39;G&#39;=>-30,
	&#39;H&#39;=>0
);
$account = new account($accounts);
$account->AA();
print_r($account->desc);
// output :
// Array ( [0] => A给G30元 [1] => A给E20元 [2] => B给E10元 [3] => B给D20元 [4] => B给F10元 [5] => C给F10元)
登入後複製
相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門推薦
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!