Ik ben al wel een tijd bezig met php, maar heb nooit echt iets met arrays gedaan. Nu wil ik wat wiskunde gaan doen met php en een soort van voorwaardes in een foreach-lus zetten die vergelijkbaar zijn met een WHERE-clausule uit een sql-query.
Ik zet om te beginnen een veld uit een databank in een array. Vervolgens draai ik daar een foreach-lus overheen waarin ik alle data die niet aan mijn voorwaardes voldoen weer uit het array haal. Uiteindelijk print ik het array weer om te kijken wat er in zit.
$SlotArray = array();
$sql = "SELECT * FROM aex";
$exec_sql = mysql_query($sql) or die("Foutmelding: ".mysql_error());
while($z = mysql_fetch_assoc($exec_sql)){
$SlotArray[$z['Datum']] = $z['Slot'];
}
reset($SlotArray);
foreach($SlotArray as $waarde){
if($waarde > 300 OR $waarde < 290){
unset($SlotArray[key($SlotArray)]);
}
}
print_r($SlotArray);De eerste 10 resultaten van het array zijn echter de volgende:
[1983-01-03] => 45.38
[2011-02-25] => 366.77
[2011-02-28] => 369.13
[2011-03-01] => 367.95
[2011-03-02] => 364.86
[2011-03-03] => 367.60
[2011-03-04] => 367.95
[2011-03-07] => 366.08
[2011-03-08] => 366.38
[2011-03-09] => 366.25
Er zit dus ergens iets fout. Ik begrijp echter absoluut niet waar. Heeft iemand enig idee waar ik fout zit?
ps. Ik weet dat ik natuurlijk ook gewoon een "WHERE Slot < 300 AND Slot > 290" kan toevoegen aan de sql-query. In een later stadium in mijn berekeningen zal dat echter niet meer kunnen. Bovendien wil ik ook gewoon wat meer leren werken met arrays.. :-)