Hi allen,
Lang geleden dat ik het Tweakers forum actief gebruikte als hulpmiddel. Ik was zelfs m'n account vergeten
vandaar mijn "eerste post" onder nieuw account, excuses hiervoor
De afgelopen jaren leerde ik mezelf PHP aan om die statische websites van me toch wat dynamiek te bezorgen. Ondertussen ben ik op het punt gekomen dat ik eigenhandig een webshop aan het uitwerken ben. Een beetje het warm water opnieuw uitvinden maar dan op mijn manier. Deze uitdaging lukt goed, tot nu. * I'm stuck *
Meerbepaald bij hetvolgende...
Zoals menig webshops kunnen bezoekers filters gebruiken om hun keuze te specifiëren. In mijn geval creëer ik een array als volgt :
De lengte van de array is afhankelijk van de unieke gekozen filters.
Nu wens ik een nieuwe array te verkrijgen met alle combinaties om hiermee uiteindelijk mijn filter query te kunnen uitbouwen (SELECT ... FROM Artikels ...... WHERE ({filterQuery}) ...).
Momenteel kon ik volgende uitwerken, weliswaar hard-coded volgens aantal keys in mijn filterParams array..
Resulterend in volgende array met unieke combinaties:
De code werkt prima en doet wat ik wil, namelijk alle unieke combinaties bijhouden.
Natuurlijk is het zo dat de filterParams array x-aantal verschillende filters kan bevatten, zoals: 'touchscreen', 'opslagSSD', 'geheugen', etc ...
Helaas ben ik slachtoffer van mijn slechte concentratie om dit treffelijk uit te werken
Via Google vond ik heel wat code terug met kernwoorden als Cartesian, permutations etc.. maar het is me net iets te ingewikkeld geworden.
Iemand die me hierbij kan assisteren?
Waarvoor dank !
Lang geleden dat ik het Tweakers forum actief gebruikte als hulpmiddel. Ik was zelfs m'n account vergeten

De afgelopen jaren leerde ik mezelf PHP aan om die statische websites van me toch wat dynamiek te bezorgen. Ondertussen ben ik op het punt gekomen dat ik eigenhandig een webshop aan het uitwerken ben. Een beetje het warm water opnieuw uitvinden maar dan op mijn manier. Deze uitdaging lukt goed, tot nu. * I'm stuck *

Meerbepaald bij hetvolgende...
Zoals menig webshops kunnen bezoekers filters gebruiken om hun keuze te specifiëren. In mijn geval creëer ik een array als volgt :
PHP:
1
2
3
4
5
| $filterParams = array( 'processor' => array('Intel Core i3', 'Intel Core i5'), 'opslagHDD' => array('500', '1000'), 'scherm' => array('15.6', '17.3') ); |
De lengte van de array is afhankelijk van de unieke gekozen filters.
Nu wens ik een nieuwe array te verkrijgen met alle combinaties om hiermee uiteindelijk mijn filter query te kunnen uitbouwen (SELECT ... FROM Artikels ...... WHERE ({filterQuery}) ...).
Momenteel kon ik volgende uitwerken, weliswaar hard-coded volgens aantal keys in mijn filterParams array..
PHP:
1
2
3
4
5
6
7
8
| $combinations = array(); foreach($filterParams['processor'] as $value1) { foreach($filterParams['opslagHDD'] as $value2) { foreach($filterParams['scherm'] as $value3) { $combinations[] = array('processor' => $value1, 'opslagHDD' => $value2, 'scherm' => $value3); } } } |
Resulterend in volgende array met unieke combinaties:
PHP:
1
2
3
4
5
6
7
8
| Array ( [processor] => Intel Core i3 [opslagHDD] => 500 [scherm] => 15.6 ) Array ( [processor] => Intel Core i3 [opslagHDD] => 500 [scherm] => 17.3 ) Array ( [processor] => Intel Core i3 [opslagHDD] => 1000 [scherm] => 15.6 ) Array ( [processor] => Intel Core i3 [opslagHDD] => 1000 [scherm] => 17.3 ) Array ( [processor] => Intel Core i5 [opslagHDD] => 500 [scherm] => 15.6 ) Array ( [processor] => Intel Core i5 [opslagHDD] => 500 [scherm] => 17.3 ) Array ( [processor] => Intel Core i5 [opslagHDD] => 1000 [scherm] => 15.6 ) Array ( [processor] => Intel Core i5 [opslagHDD] => 1000 [scherm] => 17.3 ) |
De code werkt prima en doet wat ik wil, namelijk alle unieke combinaties bijhouden.
Natuurlijk is het zo dat de filterParams array x-aantal verschillende filters kan bevatten, zoals: 'touchscreen', 'opslagSSD', 'geheugen', etc ...
Helaas ben ik slachtoffer van mijn slechte concentratie om dit treffelijk uit te werken
Via Google vond ik heel wat code terug met kernwoorden als Cartesian, permutations etc.. maar het is me net iets te ingewikkeld geworden.
Iemand die me hierbij kan assisteren?
Waarvoor dank !