結果をループ内に表示しようとしていますが、何らかの理由で、my = a = を作成し、最後に .$_str を追加すると、ループの外に表示され続けます。ただし、.= for my = を使用し、文字列の末尾から .$_str を削除すると、ループ内に表示されますが、foreach ループからの出力が逆になりません。これは、達成しようとしている平均的な目標です。
問題が発生している領域についてコメントしました。テストする行のいずれかを自由にコメントアウトして、コードをテストする準備ができていることを確認してください。
<script type='text/javascript' src='http://www.google.com/jsapi'></script>
<?php
$file = file_get_contents("http://ichart.finance.yahoo.com/table.csv?s=GOOG&a=03&b=18&c=2004&d=04&e=17&f=2012&g=d&ignore=.csv");
$stockcontent = str_replace('Date,Open,High,Low,Close,Volume,Adj Close', '', $file);
$stockcontent = trim($stockcontent);
$stockcontentex = str_getcsv($stockcontent, "\n");
$i = 0;
$j = 0;
$_str = '';
$_str .= "<script type='text/javascript'>
google.load('visualization', '1', {'packages':['annotatedtimeline']});
google.setOnLoadCallback(drawChart);
function drawChart() {
var data = new google.visualization.DataTable();
data.addColumn('date', 'Date');
data.addColumn('number', 'High');
data.addColumn('number', 'Low');
data.addRows([";
foreach($stockcontentex as $stockexplode){
$stockex = explode(',',$stockcontentex[$i++]);
$stockexdate = explode('-', $stockex[0]);
$stockYear = $stockexdate[0];
$stockMonth = $stockexdate[1];
$stockDay = $stockexdate[2];
$stockHigh = $stockex[2];
$stockLow = $stockex[3];
//right here is where I am having the problem.
$_str = '[new Date('.$stockYear.', '.$stockMonth.', '.$stockDay.'), '.$stockHigh.', '.$stockLow.'],'. "\n".$_str;
//$_str .= '[new Date('.$stockYear.', '.$stockMonth.', '.$stockDay.'), '.$stockHigh.', '.$stockLow.'],'. "\n";
}
$_str .= "]);
var chart = new google.visualization.AnnotatedTimeLine(document.getElementById('chart_div'));
chart.draw(data, {displayAnnotations: false});
}
</script>
<div id='chart_div' style='width: 700px; height: 240px;'></div>";
echo $_str;
?>
これについて私を助けることができる人に感謝します。