De sizeof methode in PHP heeft complexiteit O(n), dus door deze elke keer aan te roepen versplil je de nodige CPU cycles. Over het algemeen kun je beter (qua performance dan iig...) de for-loops over arrays omschrijven naar:Anoniem: 140111 schreef op vrijdag 20 juli 2007 @ 17:09:
Even een brainfart:
PHP:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 public function CreateSaveObject() { $QueryBuilder = "INSERT INTO ". $this->Tabelnaam ." ("; for($i = 0; $i < (sizeof($this->VeldenArray) - 1); $i++) { $QueryBuilder .= $this->VeldenArray[$i] .', '; } $QueryBuilder .= $this->VeldenArray[(sizeof($this->VeldenArray) - 1)]; $QueryBuilder .= ') VALUES ('; for($i = 0; $i < (sizeof($this->VeldenArray) - 1); $i++) { $QueryBuilder .= '\'".$this->'.$this->VeldenArray[$i].'."\', '; } $QueryBuilder .= '\'".$this->'.$this->VeldenArray[(sizeof($this->VeldenArray) - 1)].'."\')'; echo $QueryBuilder; }
Net uit zitten poepen, leuk voor de volgende
PHP:
1
2
3
4
| $arr = array(1,2,3); for($i = 0, $s = sizeof($arr); $i < $s; $i++) { // do things on array } |
Een uitzondering is uiteraard als je binnen de loop elementen uit de array verwijdert. In jouw voorbeeld hierboven kun je beter in de method scope eenmalig de size in een variabele opslaan. Nog beter is de juiste PHP methodes gebruiken:
PS: Om te mierenneuken, leer je aan om de single quotes te gebruiken waar double quotes niet nodig zijn voor een string. In theorie zou dit efficienter moeten kunnen zijn (heb nog nooit getest eigenlijk...).
[ Voor 9% gewijzigd door narotic op 21-07-2007 15:56 ]
- = Step Into The Pit | Industrial Strength = -