$last_running[$row['userid']][$row['group_id']] = $paid['users'][$row['userid']]['groups'][$row['group_id']][$row['exid']]['running_total']; } $paid['total'] = number_format($total, DECIMALS, DSEP, TSEP); } // array structure: ['users'][$userid]['groups'][$groupid][$expenseid]['amount|expense_date|description'] return $paid; } $a = 1; //$dump = new array_dump(); $a = 1; $groupexp = get_groupexpenses($groupid); // reverse array so earliest expense first $groupexp = array_reverse($groupexp); $memberlist = get_groupmembers($groupid); $groupmemberids = get_groupmember_ids($memberlist); $user_expenses = get_user_expenses_test($groupmemberids); $user_paid_expenses = get_user_paid_expenses_test($groupmemberids); $size = count($memberlist); $expcount = count($groupexp); foreach ($groupexp as $key => $value) { foreach ($groupmemberids as $keyy => $memberid) { if ($balance_array[$lastkey]['balance_member'][$memberid]) { // previous key exists for this member, use that balance $balance = $balance_array[$lastkey]['balance_member'][$memberid]; } else { // no key for this member, balance = 0; $balance = 0; } // get last key balance, substract current expense and add paid $balance_array[$key]['balance_member'][$memberid] = round($balance - $user_expenses['users'][$memberid]['groups'][$groupid][$value['expense_id']]['per_person'] + $user_paid_expenses['users'][$memberid]['groups'][$groupid][$value['expense_id']]['amount'], 2); $balance_array[$key]['expense_id'] = $value['expense_id'];
function get_graph_balance_array($groupid, $memberlist) { $groupexp = get_groupexpenses($groupid, false, false, false, true); // reverse array so earliest expense first $groupexp = array_reverse($groupexp); $groupmemberids = get_groupmember_ids($memberlist); $user_expenses = get_user_expenses_test($groupmemberids); $user_paid_expenses = get_user_paid_expenses_test($groupmemberids); $size = count($memberlist); $expcount = count($groupexp); $balance_array = array(); foreach ($groupexp as $key => $value) { $a = 1; foreach ($groupmemberids as $keyy => $memberid) { if (isset($lastkey) && $balance_array[$lastkey]['balance_member'][$memberid]) { // previous key exists for this member, use that balance $balance = $balance_array[$lastkey]['balance_member'][$memberid]; } else { // no key for this member, balance = 0; $balance = 0; } // get last key balance, substract current expense and add paid $_curexp = isset($user_expenses['users'][$memberid]['groups'][$groupid][$value['expense_id']]['per_person']) ? $user_expenses['users'][$memberid]['groups'][$groupid][$value['expense_id']]['per_person'] : 0; $_curpay = isset($user_paid_expenses['users'][$memberid]['groups'][$groupid][$value['expense_id']]['amount']) ? $user_paid_expenses['users'][$memberid]['groups'][$groupid][$value['expense_id']]['amount'] : 0; $balance_array[$key]['balance_member'][$memberid] = round($balance - $_curexp + $_curpay, 2); $balance_array[$key]['expense_id'] = $value['expense_id']; $balance_array[$key]['date_time'] = $value['date']; $balance_array[$key]['date'] = substr($value['date'], 0, 10); $balance_array[$key]['isodate'] = dutchDate2iso($balance_array[$key]['date']); // if ($memberid == 3) { // //echo "Key: $key, expense_id: " . $value['expense_id'] . "Balance: " . $balance_array[$key]['balance_member'][$memberid] . " ==> $balance - " . // $user_expenses['users'][$memberid]['groups'][$groupid][$value['expense_id']]['per_person'] . " + " . $user_paid_expenses['users'][$memberid]['groups'][$groupid][$value['expense_id']]['amount'] . "<br>"; // } } $lastkey = $key; } return $balance_array; }