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.
Dennis schreef op 14.02.2006 15:42
het moet zijn:
$array1 = array( 1, 3, 10, 100 );
$array2 = array( 2, 1, 11, 100 );

Je hebt helemaal gelijk, tis dan ook weer een tijdje geleden dat ik met PHP bezig was :$
maar nu kan ik nog niet bijv die 1 groen maken, de 3 en 10 rood en 100 zwart laten

Door je ifje erin te proppen zoals het commentaar aangeeft?
met die if wil dus niet lukken.
Ik weet niet hoe ik de 1-2 moet vergelijken
en de 3-1, 10-11 en 100-100

dat was mijn beginvraag ook grotendeels...
Je hoeft niet zo irritant opdringerig te doen.
Als je meer info hebt kun je je bericht wijzigen .

Verder is het gewoon vergelijken zoals je al in je voorbeeld aangaf.
Als getal1 is groter dan getal2
=> groen
Als getal2 is groter dan getal1
=> rood
Anders
=> Zwart

That's it :)
maar hij vergelijkt toch niet getal voor getal?

hij doet geloof ik 4x hetzelfde, maar niet eerst getal1, dan getal 2 etc...
En daar is nou net die loop voor zoals je hebt kunnen lezen ...
ja dat snap ik ;)

Maar met die loop krijg ik het nog niet voor elkaar, dat ie getal voor getal pakt.
Maar dat moet dus wel werken?
Dan zal ik het nog maar eens zo proberen...
Checks op een gelijk aantal elementen ed mag je er zelf in prutser.
Dit is mijn resultaat:
<?php
# Twee test arrays
$array1 = array( 1, 2, 3, 4, 5 );
$array2 = array( 0, 2, 4, 4, 2 );

# Even tellen hoeveel elementen we hebben
$aantalElementen = count( $array1 );

# Loopje
for( $i = 0; $i < $aantalElementen; $i++ )
{
if( $array1[$i] > $array2[$i] )
echo '<span style="color: green">' . $array1[$i] . '</span>';
elseif( $array1[$i] < $array2[$i] )
echo '<span style="color: red">' . $array1[$i] . '</span>';
else
echo '<span style="color: black">' . $array1[$i] . '</span>';
}
?>
Hartelijk dank :)
Dit is het eerste werkend voorbeeld dat ik heb nu

Maar nu zit ik zelf met het probleem om mijn waardes in een array te zetten.

Ik gebruik $row[renteNHG] en $rowb[renteNHG]
Ik probeer ze zelf alsvolgt in een array te zetten:

$rNHG = $row[RenteNHG];

$rentes[] = "$rNHG";

$a = implode(", ", $rentes);

en

$rNHGb = $rowb[RenteNHG];

$rentesb[] = "$rNHGb";

$b = implode(", ", $rentesb);

om te testen heb ik:

echo"a=$a";
echo"b=$b";

Dit geeft als resultaat:

a=2.90, 2.80, 3.00, 3.10, 3.40, 3.60, 3.90, 4.00, 4.20, 4.30, 4.50, 4.60, 4.10, 4.50, 4.90, 5.40, 5.80, 6.20, 3.90

b=9.90, 0.90, 1.10, 1.40, 1.80, 2.00, 2.30, 2.50, 2.80, 2.90, 3.10, 3.30, 2.20, 2.60, 3.00, 3.50, 3.90, 6.30, 1.90

Nu wil ik dit dus in 2 arrays zetten. Dat doe ik als volgt:

$array1 = array($a);
$array2 = array($b);

Maar als ik nu bovenstaande code uitvoer, krijg ik wel:

2.90, 2.80, 3.00, 3.10, 3.40, 3.60, 3.90, 4.00, 4.20, 4.30, 4.50, 4.60, 4.10, 4.50, 4.90, 5.40, 5.80, 6.20, 3.90 (dus de waarden van array 1), maar alle getallen zijn ROOD (wat betekent dat array1>array2)

Maar ik heb express het eerste getal van array2 9.90 gemaakt, zodat het eerste getal van array1 GROEN zou moeten zijn. Maar dat is dus niet het geval....

Ik heb ook $aantalElementen ge-echoed, en die geeft 1 als waarde. Dus er gaat iets fout met de waardes in een array zetten. Als ik ze handmatig in de array zet:
dus:
$array1 = array(2.90, 2.80, 3.00, 3.10, 3.40, 3.60, 3.90, 4.00, 4.20, 4.30, 4.50, 4.60, 4.10, 4.50, 4.90, 5.40, 5.80, 6.20, 3.90
);
$array2 = array(9.90, 0.90, 1.10, 1.40, 1.80, 2.00, 2.30, 2.50, 2.80, 2.90, 3.10, 3.30, 2.20, 2.60, 3.00, 3.50, 3.90, 6.30, 1.90
);

dan klopt het wel, en is het eerste getal groen en is
$aantalElementen 19

Hoe kan ik mijn waarden in een array zetten zonder dat handmatig, zoals in het voorbeeld, te doen?
<?php
// arrays maken
$array1 = explode (',', $a);
$array2 = explode (',', $b);
?>

edit: foutje verwijderd

Reageren