Ik gebruik de volgende functie om een boomstructuur weer te geven:
Deze functie krijgt een array mee met daarin alle rijen uit de tabel. Probleem is dat deze manier welliswaar sneller is dan voor ieder item een query uitvoeren, maar toch nog te langzaam. Op mijn eigen pc doet deze functie er gemiddeld 6 sec over om een boompje van 1250 items te genereren. Hoe kan ik dit sneller maken?
Ik heb al diverse dingen geprobeerd, zoals array_merge vervangen door `+`, maar dat is juist langzamer.
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| function makeCatRecArray($parent_id = 0, $array = array(), $level = 0) { $level++; $ret_array = array(); if(is_array($array)) { foreach($array as $id => $item) { if($item['parent'] == $parent_id) { $row['id'] = $id; $row['text'] = printString($level*3, " ", "> ") . $item['name']; $ret_array[] = $row; $ret_array = array_merge($ret_array, makeCatRecArray($id, $array, $level)); } } } return $ret_array; } |
Deze functie krijgt een array mee met daarin alle rijen uit de tabel. Probleem is dat deze manier welliswaar sneller is dan voor ieder item een query uitvoeren, maar toch nog te langzaam. Op mijn eigen pc doet deze functie er gemiddeld 6 sec over om een boompje van 1250 items te genereren. Hoe kan ik dit sneller maken?
Ik heb al diverse dingen geprobeerd, zoals array_merge vervangen door `+`, maar dat is juist langzamer.
[ Voor 10% gewijzigd door Verwijderd op 03-12-2004 23:25 . Reden: typo's ]