키가 날짜 인 mutlidimensional 배열을 반환하는 함수를 작성하려고하는데 날짜에 비용과 값이 두 개 더 있습니다. 주식 시장이 그날 (IE 주말 또는 휴일) 닫히면 결과는 제로 행이 될 것입니다. 나는 그날의 비용과 가치를 이전과 동일하게 책정하고 싶다. 분명히 나는 여기에서 무엇인가 놓치고있다. 그러나 나는 이해하지 않는다. 당신이 $current
다르게 $last
를 포맷처럼결과가 0이면 이전을 사용하십시오. 내가 뭘 잘못 했니?
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;
}
: 당신이 라인을 변경할 수 있습니다 있도록
$last
및$run
는 같은 포맷됩니다. 배열에 대해서는 중괄호로 구분하십시오.''$ arr [ 'script']} ""안에있는 $ var – Amelia실제 문제가 무엇인지 잘 모르겠습니다. 그래서 추측하기 어렵습니다. 볼 곳. 주석 처리 된 라인이 문제를 일으키는 라인입니까? 오류 메시지가 나타나거나 결과가 잘못 되었습니까? 그렇다면 어떤 방식으로? – Jerry