login  Naam:   Wachtwoord: 
Registreer je!
 Forum

array dubbele waarden

Offline cloudstrife - 09/01/2007 10:36
Avatar van cloudstrifePHP beginner Ik heb een formulier dat dat per lijn telkens 2 items bevat, bv:

x0 & y0
x1 & y1
x2 & y2

Die x en y zijn de namen van mijn velden, de waarden die er worden ingevoerd worden via POST verzonden en zitten dus in een array, probleem is nu dat de x waarden uniek moeten zijn, geen 2 x'en mogen dezelfde waarden bevatten, de y'velden mogen dit wel. Iemand enig idee hoe je dit best controleert? Ik weet dat er in php een functie is om dubbele waarden uit een array te halen maar die is niet mogelijk aangezien x uniek MOET zijn en y gerust dubbel mag zijn...

7 antwoorden

Gesponsorde links
Offline Thomas - 09/01/2007 10:58
Avatar van Thomas Moderator exploden op " & ", en dan het eerste deel in een array zetten en vervolgens controleren met array_count_values. Geen van de waarden van dat laatste array mogen dan > 1 zijn.
Offline cloudstrife - 09/01/2007 11:22
Avatar van cloudstrife PHP beginner Probleem is dat het synchroon moet verlopen, dus als bv er bij de x'en een dubbele waarde is moet de bijhorende y-waarde ook verwijderd worden... en dat van het exploden is niet nodig het zijn gewoon velden van een formulier die via post verzonden worden. Ik weet dat er functies zijn om dubbele waarden uit een array te halen maar dan blijt het probleem dat als je bv x2 verwijderd dat y2 ook moet verwijderd worden want deze hangen namelijk samen, als ik dit niet doe en ik wil later mijn ingegeven waarden gebruiken zullen deze niet kloppen omdat er 1 x weg is en er dus 1 y teveel overblijft.
Offline Kr4nKz1n - 09/01/2007 11:40
Avatar van Kr4nKz1n Onbekend cloudstrife geef een een voorbeeld (zichtbaar).
Want hoe pak je ze bij elkaar etc. Meer duidelijkheid.
Offline cloudstrife - 09/01/2007 11:49
Avatar van cloudstrife PHP beginner Het is nogal een moeilijk geval om zichtbaar te tonen, maar denk dat ik zelf de oplossing al gevonden heb, misschien wat omslachtig maar denk wel dat het zal werken.

Eerst een count doen van je post array, aangezien x en y steeds in paren voorkomen kan je door dat aantal door 2 te delen weten hoeveel lijnen er zijn. Dan gewoon via dat aantal 2 apparte arrays vullen en via array_unique() de dubbele uit de x array halen, heb net gevonden dat die functie de dubbele waarden verwijderd zonder de key's te verwijderen, dus op die manier blijft de x en y array toch synchroon.
Offline Kr4nKz1n - 09/01/2007 11:51 (laatste wijziging 09/01/2007 12:02)
Avatar van Kr4nKz1n Onbekend Nouja ik snap er niet veel van, maar leuk dat het (bijna) werkt.
S6 lol
Offline Thomas - 09/01/2007 11:51
Avatar van Thomas Moderator Je zou ook kunnen exploden en dan zelf zo'n array met het aantal voorkomens kunnen bouwen. Bij elke x-waarde kijk je dan of deze al voorkomt in zo'n array. Dit kan eenvoudig met in_array.

Maar is het de bedoeling dat je alle voorkomens van x<getal> na het eerste voorkomen van x<getal> weggooit? Hoe weet je dan of je het "goede" paar behoudt? Ik weet overigens ook niet wat voor betekenissen deze paren hebben, dus het is voor mij / lezers nogal moeilijk om een beeld te vormen wat (waarom) je (dit) wilt bereiken.
Offline cloudstrife - 09/01/2007 12:03
Avatar van cloudstrife PHP beginner Idd met die in_array() zou ik het ook kunnen checken en zelfs nog de dubbele waarden bij elkaar gaan voegen. Wat dat weggooien betreft is het inderdaad elke dubbele waarde na het eerste voorkomen... een dubbele waarde bij die x is namelijk een fout door de invoer van de gebruiker.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.17s