Door
Sebastiaan Janssen
op 13-05-2020 00:05
gewijzigd op 13-05-2020 00:05
1.683 views
Beste forum gebruikers,
Ik wil graag iets maken maar weet even niet waar ik moet beginnen en hoop dat jullie mij op weg kunnen helpen.
De onderstaande array heb ik gemaakt, en nu wil ik een foreach loop en hierin een if statement.
Het if statement moet kijken of variable timecode gelijk is of hoger maar kleiner dan de eerst volgende key in de array.
En misschien is het verstandiger om weg te sturen van deze opzet.
Hoe ben je in eerste instantie tot dit ontwerp gekomen want dit komt redelijk apart over allemaal. Misschien wat meer achtergrond? En ja, randgevallen dus.
Hmmm ... vraag me af of dat nu zoveel korter is :) Mijn code geeft in ieder geval exact de timecode terug en in geval van 7 retourneert ie de timecode van key 6.
Als je de $times omdraait wordt het iets eenvoudiger (hoef je niet "de vorige" te onthouden, maar ben je gelijk klaar). Blijft dat je last hebt van "randgevallen" (is bij $time_code = 7 het antwoord 14:00, of "not found"; onderstaande code geeft "not found" voor waarden onder 2, maar 14:00 voor waarden boven 6).
Nou ja niet zozeer korter dan, maar mogelijk valt er wat te verbeteren qua efficiƫntie/schaalbaarheid.
Wie zegt dat $times niet vele malen groter kan worden en/of deze bewerkingen zeer vaak worden uitgevoerd, dan wil je de wat duurdere operaties zoveel mogelijk uitstellen tenzij ze niet te vermijden zijn.
Anyhow, misschien is het interessanter om te weten wat ervoor heeft gezorgd dat deze constructie in eerste instantie nodig was, als je iets in dat ontwerp kunt veranderen is deze bewerking mogelijk helemaal niet nodig.
Dit zijn alle oplossingen en doen ongetwijfeld wat ze moeten doen, maar als de aanpak verkeerd is, dan is dit slechts een voortvloeisel van een verkeerde aanpak :p.
Volgens mij klopt jouw code ook. En die is inderdaad een stukje korter. Mooi gedaan!
@Thomas:
>> Dit zijn alle oplossingen en doen ongetwijfeld wat ze moeten doen, maar als de aanpak verkeerd is, dan is dit slechts een voortvloeisel van een verkeerde aanpak :p.
Ja, dat geldt eigenlijk voor alles. Maar is wel even grappig om zo'n stukje code te fabriceren.
En Sebastiaan ... heb je iets aan onze input gehad?
Ik zie dat je gisteren nog een bericht op het forum hebt geplaatst, dus ik neem aan dat je onze reacties ook gezien hebt? Wel zo leuk voor degenen die de moeite hebben genomen om te reageren als je dan even laat weten of je er iets aan hebt gehad.