ホームページ >バックエンド開発 >PHPチュートリアル >日次料金計算のコードロジック (php)

日次料金計算のコードロジック (php)

WBOY
WBOYオリジナル
2016-06-20 12:45:171096ブラウズ

A、B、C という 3 人が一緒に住んでおり、食料品の購入など、彼らの毎日の出費を記録するための Web サイトを開発する必要があるとします。では、データテーブルはどのように設計すればよいのでしょうか?さらに、これらのデータは各人が支払わなければならない合計金額をどのように計算するのでしょうか?
以下は私のコードです:
//$aData の各配列は毎日の消費記録を表します、金額: その日の総費用、平均: 1 人当たりの費用、その他の表現 ユーザー名: 1/0/-1 支払者/支払う必要はありません/支払う必要がある人
$aData = [
['money' => 30, 'mean'=> 10, 'twl' => 1, 'xxx' = > -1, 'yyy' => -1],
['お金' => 5, 'twl' => 1, 'yyy' => 0],
$count = 0;
foreach($aData as $val){
$val as $k => $v){
if($k == 'money'){
$count += $val['money']; }elseif($k ! = '平均' && $k != 'ボス'){
$aList[$k][] = [
'out' => $val['money'] : 0, // 支払うお金を意味します
'in' = & gt & lt; Val ['mean']: 0, // 共有したいお金を意味します
'誰' = > $val['ボス'],
}
}
}

$aData = []; = > $v){
$in = $out = 0;
foreach($v as $key => $val){
$in += $val['in'];
$out += $val['out'];
}
$aData[$k] = [
'out' =>
'in' => ; $in,
];
}

結果は

誰が誰に支払ったのかはまだわかりません。アドバイスを求める




ディスカッション(解決策)に返信 Boss
はデータに表示されません。 アイデア:

ユーザー テーブル、ユーザー消費記録テーブル

どのアイテムがカウントされるかは、ユーザー消費テーブルのアイテムに基づいています。

user table

user_id
username
password

consumption table
id
user_id ユーザー ID
consumption_type 消費タイプ: 例: 電気代、食べ物の購入、車の乗車
金額
作成時間時間

実際に私が言いたいのは、どの要素を配列に追加してマークし、各人がお互いにいくら与えるべきかを計算するということです。誰に

これはどういう意味ですか?

これとほぼ同じです。

$aData = [ ['money' => 30, 'mean'=> 10, 'twl' => 1, 'xxx' => -1, 'yyy' => -1],   ['money' => 10, 'mean'=> 5, 'twl' => -1, 'xxx' => 1, 'yyy' => 0],];foreach($aData as $m) {  $u = array_diff_key($m, ['money' => 0, 'mean' => 0]);  arsort($u);  foreach($u as $k=>$v) {    if(!isset($r[$k])) $r[$k] = ['out' => 0, 'in' => 0, 'boss' => []];    if($v == 0) continue;    if($v == 1) {      $boss = $k;      $r[$k]['out'] += $m['money'];    }else {      $r[$k]['out'] += $m['mean'];      $r[$k]['boss'][] = $boss;      $r[$boss]['in'] += $m['mean'];    }  }}print_r($r);
$aData = [
Array(    [twl] => Array        (            [out] => 35            [in] => 20            [boss] => Array                (                    [0] => xxx                )        )    [yyy] => Array        (            [out] => 10            [in] => 0            [boss] => Array                (                    [0] => twl                )        )    [xxx] => Array        (            [out] => 20            [in] => 5            [boss] => Array                (                    [0] => twl                )        ))
['money' => 30, 'mean'=> 10, 'twl' とします。 => 1, 'xxx' => -1, 'yyy' => -1],

['お金' => 10, 'twl' => -1, 'xxx' => 1, 'yyy' => 1],

['mean'=> 5, 'twl' => 'xxx' => 1, 'yyy' => 0],
['money' => 10, 'twl' => ; 1, 'yyy' => -1],
['お金' => 10, 'twl' => 1, ' yyy' => -1]、
['money' => 10、'twl' => 1、'yyy' => ; -1],
];

また計算されたデータが正確ではないように感じます

一つずつ計算できます


そうですね、ありがとうございます。あなたのアイデアはとても役に立ちました。

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