Danke für deine Antwort.
Hab mittlerweile einen Weg gefunden, der mir Kopfzerbrechen bereitet hat.
Dachte ich bekomm es nicht hin, aber hab es irgendwie geschafft.
Hier mein Weg:
$array_balken ist der width-Wert des Balkens
$max_balken ist der maximale Wert im Array
Grundgedanke:
Wird der Balken größer als die Hälfte muss der Rotanteil von 255 proportional abnehmen, Grün bleibt voll.
Wird der Balken kleiner als die Hälfte muss der Grünanteil von 255
proportional abnehmen, Rot bleibt voll.
Genau die Hälfte, Rot und Grün voll = Gelb.
Die ganzen Werte müssen dann immer von Dezimal in Hex mit dechex($wert) umgerechnet werden und gegebenenfalls noch eine 0 voransetzen.
Es funktioniert, lustig!
if ( $array_balken[$i] > ($max_balken / 2) )
{
$wert = $array_balken[$i] - ($max_balken / 2);
$wert = (255 / 70) * $wert;
$wert = 255 - $wert;
$wert_hex = dechex($wert);
if (strlen($wert_hex) == 1)
{
$wert_hex = "0".$wert_hex;
}
$color = "#".$wert_hex."FF00";
} else {
if ( $array_balken[$i] < ($max_balken / 2) )
{
$wert = (255 / 70) * $array_balken[$i];
$wert_hex = dechex($wert);
if (strlen($wert_hex) == 1)
{
$wert_hex = "0".$wert_hex;
}
$color = "#FF".$wert_hex."00";
} else {
$color = "#FFFF00";
}
}