2016-03-10 4 views
0

У меня есть 3 массивов, созданных следующим образом:PHP мимолетный массив создан в цикл для JpGraph функции

$start=2013 ; 
$end=2015; 

$no_of_bars=$to-$from+1; 

$xdata=array(); 
for($year=$start;$year<=$end;$year++){ 

    ${"y".$year}=array(); 
    $i=0; 
    $query=mysql_query("SELECT tld_master.location,tld_dose.year, AVG(tld_dose.dose)*4 as avgdose from tld_master left join tld_dose on tld_master.tldno=tld_dose.tldno where tld_master.site='F' and tld_dose.year=$year GROUP BY tld_dose.year, tld_dose.tldno"); 

    while($result=mysql_fetch_array($query)){ 

$xdata[$i]=$result['location']; 
${"y".$year}[$i]=$result['avgdose']; 


$i++; 
} 

    } 

Это создает три массива y2013, y2014, y2015.

Мне нужно передать этот массив в jpgrpah, чтобы построить групповой бар. Новые объекты Бюстгальтер созданы таким образом

$j=0; 
for($year=$start;$year<=$end;$year++, $j++){ 
    ${"plot".$year}=new BarPlot(${"y".$year}); 

    ${"plot".$year}->SetFillColor($color_array[$j]); 

if($year!=$end){$sep=",";}else{$sep="";} 
    $plots.="$"."plot".$year.$sep; 
    } 

Есть три бара участки plot2013, plot2014, plot2015. Все эти три массива. Я хочу передать эти массивы функции jpgraph, приведенные ниже:

$gbplot = new GroupBarPlot($plots); 

но это не работает. Но если я меняю его приведенному ниже, она работает

$gbplot = new GroupBarPlot(array($plot2013,$plot2014, $plot2015)); 

Я думаю, что во второй массивы передаются как аргументы, где, как и в первый раз имя массива передается в качестве строки. Как передать массив, созданный внутри цикла for, в функцию jpgraph?

+0

Боковое примечание: 'mysql_query()' и семья уже удалены из PHP. Вскоре ваше приложение будет работать только в неназванных и потенциально небезопасных версиях PHP. –

ответ

0

Не проверено, но попробуйте ввести код ниже.

$j=0; 
for($year=$start;$year<=$end;$year++, $j++){ 
    ${"plot".$year}=new BarPlot(${"y".$year}); 

    ${"plot".$year}->SetFillColor($color_array[$j]); 


    $plots[] = ${"plot".$year}; 
} 
$gbplot = new GroupBarPlot($plots); 
+0

Да! Это работает!!! благодаря – mansoondreamz