Hoi Forum,
Als beginnende php'er zou ik u een vraag willen stellen.
Ik heb meerdere oplossingen van internet geprobeert maar geen resultaat.
Vraag:
Ik heb 2 arrays op deze manier gemaakt
$ar1 = array(help1, $product);
$ar2 = array(help2, $aantal);
array_multisort($ar1, $ar2);
U ziet dat de waarde broodje gezond[4] en de waarde 0[4] dezelfde key hebben.
nu wil ik graag de waarde broodje gezond[4] uit help1 verwijderen en 0[4] uit help2 verwijderen. (help1 en help2 heb ik voor de duidelijkheid gemaakt maar spelen geen rol in deze arrays)
Waar moet ik beginnen?
Ik heb gekeken op deze pagina en ik begrijp dat ik met unset($ar[2]); de value met key 2 verwijder.
Het volgende is echter de bedoeling.
Ik heb een product in $ar1 met de key[?] overeenkomend met de key[?] van $ar2 waarvan de waarde 0 is.
Er worden dus 0 producten besteld.
Het is dus niet nodig deze in de lijst te laten staan
.
Ik wil daarom het volgende: verwijder waarde uit $ar1 en $ar2 waar value $ar2 0 is .
en daar snap ik nog steeds niets van, waarschijnlijk zal het iets met foreach worden maar hoe??
Ik dacht dat je met multidimensionale arrays van meerdere arrays 1 array kon maken waarna filteren van de gegevens makkelijker zou gaan.
Ik heb echter ook gevonden:
$array1 = array($product);
$array2 = array($aantal );
$result = array_merge($array1, $array2);
print_r($result);
array_merge dus.
Hiermee heb ik 1 array gemaakt maar het filteren zoals bedoelt in bovenstaande (dik gedrukte vraag) lukt nog niet.
Arrays zijn volledig nieuw voor mij en ik hoop dan ook op een kleine aanwijzing.
Je hoeft helemaal die arrays niet te samen te brengen als ik je goed begrijp.
Door gewoon array2 te doorlopen en op zoek te gaan naar 0, kan je ook al de onnodige waarden uit de beide arrays halen:
for($i=0;$array2[$i];$i++){ //Ieder element in de array doorlopen
if($array2[$i]==0){ //Controleren of de waarde van het huidige element 0 is
unset($array1[$i], $array2[$i]); //Zoja, het element uit array1 en array2 verwijderen
}
}
for($i=0;$array2[$i];$i++){//Ieder element in de array doorlopen
if($array2[$i]==0){//Controleren of de waarde van het huidige element 0 is
unset($array1[$i],$array2[$i]);//Zoja, het element uit array1 en array2 verwijderen
Je hoeft helemaal die arrays niet te samen te brengen als ik je goed begrijp.
Door gewoon array2 te doorlopen en op zoek te gaan naar 0, kan je ook al de onnodige waarden uit de beide arrays halen:
[..code..]
Lolll
Dit is een soort winkelwagen systeem (althans zo ziet het eruit). Je wilt dan natuurlijk dat de data goed blijft (de juiste aantal voor het juiste product). Door twee LOSSE array's te gebruiken maak je voor jezelf een groot risico, de data die je 'opslaat' is gescheiden van elkaar, terwijl het bij elkaar hoort. Daarom is het verstandiger om een multidimensionele array te gebruiken, dan kan je ook zorgen dat beide elementen dezelfde key hebben, wat de topic starter wilt.
Dit is inderdaad een soort winkelwagen.
Natuurlijk kan ik op internet een kant en klare winkelwagen script downloaden (zelfs complete winkels)
Maar om php beter te leren begrijpen probeer ik voor mijzelf het wiel opnieuw uit te vinden.
Van de fouten leer je immers het meest.
Alleen heb ik voor bovenstaand probleem de hulp nodig van mensen die verstand an zaken hebben.
Vandaar dit topic.
NB
Het script van loll werkt niet.(unset werkt niet)
Het kan natuurlijk goed zijn dat ik een fout maak.
Ronman
foreach ($array2 as $i => $value) { //Ieder element in de array doorlopen
if($array2[$i]==0){ //Controleren of de waarde van het huidige element 0 is
unset($array1[$i], $array2[$i]); //Zoja, het element uit array1 en array2 verwijderen
}
}
foreach($array2as$i=>$value){//Ieder element in de array doorlopen
if($array2[$i]==0){//Controleren of de waarde van het huidige element 0 is
unset($array1[$i],$array2[$i]);//Zoja, het element uit array1 en array2 verwijderen
Natuurlijk kan ik op internet een kant en klare winkelwagen script downloaden (zelfs complete winkels)
Dat weet ik, ik heb het daar niet over....
Ronman schreef:
Maar om php beter te leren begrijpen probeer ik voor mijzelf het wiel opnieuw uit te vinden.
Dat is erg slim om te doen ja.
Ronman schreef:
Van de fouten leer je immers het meest.
Ja klopt.
Ronman schreef:
Alleen heb ik voor bovenstaand probleem de hulp nodig van mensen die verstand an zaken hebben.
Je moet ook php.net lezen, ik heb je een link gegeven naar een php.net pagina waarop arrays en ook multidimensionele arrays uitgelegd staan. Hoe je aan die array_merge bent gekomen weet ik niet, maar het staat dus niet op die pagina. Ook snap je blijkbaar dus niet wat multidimensionele arrays zijn.
Ronman schreef:
Vandaar dit topic.
Lees veel op php.net.
Ronman schreef:
NB
Het script van loll werkt niet.(unset werkt niet)
Het kan natuurlijk goed zijn dat ik een fout maak.
Ronman
Nee, dat is niet de weg die je wilt nemen, het is niet goed om het op die manier te doen. Hier is een voorbeeldscript: