public static function getMaxOfArray($ArrayToCheck) { $maxValue = 0; foreach ($ArrayToCheck as $temp) { if (is_array($temp)) { $maxValue = max($maxValue, utility::getMaxOfArray($temp)); } else { $maxValue = max($maxValue, $temp); } } return $maxValue; }
/** * @brief Encodes the data as Extended Text. * * This specifies integer values from 0-4095, inclusive, encoded by two alphanumeric characters. * * @todo Add support for missing values */ private function extendedEncodeData($data) { $encode_string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-.'; $max = utility::getMaxOfArray($data); $encodedData = array(); if ($max > 4095) { $rate = $max / 4095.0; foreach ($data as $array) { if (is_array($array)) { $encodedData2 = array(); foreach ($array as $elem) { $toEncode = (int) $elem / $rate; $s = ''; for ($i = 0; $i < 2; ++$i) { $m = $toEncode % 64; $toEncode /= 64; $s = $encode_string[$m] . $s; } array_push($encodedData2, $s); } array_push($encodedData, $encodedData2); } else { $toEncode = (int) $array / $rate; $s = ''; for ($i = 0; $i < 2; ++$i) { $m = $toEncode % 64; $toEncode /= 64; $s = $encode_string[$m] . $s; } array_push($encodedData, $s); } } } else { foreach ($data as $array) { if (is_array($array)) { $encodedData2 = array(); foreach ($array as $elem) { $s = ''; $toEncode = $elem; for ($i = 0; $i < 2; ++$i) { $m = $toEncode % 64; $toEncode /= 64; $s = $encode_string[$m] . $s; } array_push($encodedData2, $s); } array_push($encodedData, $encodedData2); } else { $s = ''; $toEncode = $array; for ($i = 0; $i < 2; ++$i) { $m = $toEncode % 64; $toEncode /= 64; $s = $encode_string[$m] . $s; } array_push($encodedData, $s); } } } return $encodedData; }
#unset($chartData['2011']); #var_dump($chartData); if (class_exists('gBarChart')) { $Chart = new gBarChart(800, 350); $max = 0; $min = 99999; $nummonths = 0; $chartData = array_reverse($chartData, true); foreach ($chartData as $year => $months) { /* print "<h3>$year</h3>"; var_dump($months); */ ksort($months); $Chart->addDataSet(array_values($months)); $monthmax = $util->getMaxOfArray($months); if ($monthmax > $max) { $max = $monthmax; } $nummonths = count($months); } $Chart->setLegend(array_keys($chartData)); #$Chart->setBarWidth(4,1,3); $Chart->setAutoBarWidth(); $Chart->setColors(array('ff3344', '11ff11', '22aacc', '3333aa')); $Chart->setVisibleAxes(array('x', 'y')); $Chart->setDataRange(0, $max); $Chart->addAxisRange(0, 1, $nummonths); $Chart->addAxisRange(1, 0, $max); #$lineChart->addBackgroundFill('bg', 'EFEFEF'); #$lineChart->addBackgroundFill('c', '000000');