キーが日付である多次元配列を返す関数を作成しようとしています。日付にはさらに 2 つの項目のコストと値があります。私が使用しているクエリでは、その日 (IE の週末または休日) に株式市場が閉鎖された場合、結果はゼロ行になります。その日のコストと値を前と同じに設定したい。明らかに、ここで何かが欠けていますが、わかりません。
function getNetWorth()
{
// Query for First and Last date
$query = $this->db->query("SELECT min(date) as start from Transactions ORDER BY date ASC;");
$date = $query->row_array();
$current = $date['start'];
$networth = array();
while(strtotime($current)<= strtotime(date('Y-m-d')))
{
$cost = 0;
$value = 0;
$run = date('Y-m-d', $current);
// Query for net worth for given day
echo $current;
$sql = "SELECT Transactions.symbol, sum(shares) AS shares, sum(shares * price) AS cost, History.close as `close`, (sum(shares) * History.close) as value ".
"FROM Transactions INNER JOIN History ON (History.symbol = Transactions.symbol AND History.date ='".$run."') ".
"WHERE (action <>5) AND Transactions.date <= '".$run."' GROUP BY Transactions.symbol HAVING sum(shares) > 0";
$query = $this->db->query($sql);
if($query->num_rows() < 1)
{
$date = strtotime("-1 day", $current);
$last = date('Y-m-d', $date);
// $networth[$current][] = $networth[$last];
}
else
{
$result = $query->result_array();
$cost += $result['cost'];
$value += $result['value'];
$networth[$current]= array("cost" => $cost, "value" => $value);
}
$current = strtotime("+1 day", strtotime($current));
}
return $networth;
}