Ik wil getallen binnen twee arrays met elkaar vergelijken en deze een kleurtje geven wanneer ze:

1) hoger zijn (rood)
2) lager zijn (groen)
3) gelijk zijn (zwart/geen kleur)

Ik ben zover gekomen dat ik twee complete arrays met elkaar kan vergelijken.

<?

if($row['RenteNHG'] < $rowb['RenteNHG'])
{
$rentekleurNHG='<font color=green>';
}
else if($row['RenteNHG'] > $rowb['RenteNHG'])
{
$rentekleurNHG='<font color=red>';
}
else
{
$rentekleurNHG='';
}

?>

Nu maakt hij de héle kolom of groen, of rood, of zwart.

Voorbeeld:

$row['RenteNHG']
---------------
2,0
2,1
2,2
3,0
2,5

$rowb['RenteNHG']
-------------
2,5
2,6
2,7
2,5
2,5

In dit voorbeel zijn de eerste 3 getallen LAGER, 4e getal is HOGER en 5e getal is GELIJK

Wat ik wil is dat de eerste 3 getallen GROEN zijn, 4e getal ROOD, en 5e getal ZWART

Maar in dit voorbeeld zijn alle getallen GROEN.
Kun je ook de code laten zien waarin je de tabel aanmaakt?
echo"
<tr>
<td>$RenteNHG</td>
<td>$Rente60</td>
<td>$Rente75</td>
<td>$Rente90</td>
<td>$Rente100</td>
<td>$Rente110</td>
<td>$Rente125</td>
</tr>";
je moet een for loopje maken met:

for(i=0;i<=$aantalgetallen;i++) { dan je if structuur }

wat je nu krijgt is dat hij de if structuur een x ($aantalgetallen)aantal keer doorloopt ipv 1 keer.

ps $aatal getallen kan eventueel met count()
Ik ga ervan uit dat dat loopje al bestaat, maar niet hier is gepost. Anders is het lastig om een tabel te maken ;-)

Maar ik mis eigenlijk de $rentekleurNHG in het hele tabel-verhaal. Ik zou namelijk verwachten:

<td>$rentekleurNHG$RenteNHG$slashfonttag</td>

waarbij $slashfonttag is gedefinieerd als:

$slashfonttag = ($rentekleurNHG != '') ? '</font>' : '';

(oftewel: wat je opent, moet je ook weer sluiten ;-) )
Nóg mooier is het overigens om CSS te gebruiken, waarbij je werkt met <td class="groen"> of <td class="rood"> als de inhoud een kleurtje moet hebben.
mijn code is nu:

<?

if($row['RenteNHG'] < $rowb['RenteNHG'])
{
$rentekleurNHG='<font color=green>';
}
else if($row['RenteNHG'] > $rowb['RenteNHG'])
{
$rentekleurNHG='<font color=red>';
}
else
{
$rentekleurNHG='';
}

?>
(dit staat onder een while loop)

waar moet ik dat for- loopje plaatsen zodat ie elke rente een voor een afgaat? Want het wel niet echt lukken
iemand?
<?php
# Twee arraytjes
$array1 = ( 1, 3, 10, 100 );
$array2 = ( 2, 1, 11, 100 );

# Loopje
for( $i = 0; $i < $aantal; $i++ )
{
# Ifje hier
# ...
}
?>
Dat is het idee.
En PHP kent wel een elseif, aanelkaar dus.

Edit: Teipvout
en dan?

hoe krijg je de kleinere waarde dan groen bijvoorbeeld?
het moet zijn:

$array1 = array( 1, 3, 10, 100 );
$array2 = array( 2, 1, 11, 100 );

maar nu kan ik nog niet bijv die 1 groen maken, de 3 en 10 rood en 100 zwart laten

Reageren