login  Naam:   Wachtwoord: 
Registreer je!
 Forum

array (aan)vullen op basis van max waarde

Offline markla - 11/09/2013 14:27 (laatste wijziging 11/09/2013 14:28)
Avatar van marklaPHP interesse Misschien zouden jullie mij kunnen helpen met het volgende.

voor een reeks grafieken zou ik heel graag een array maken zoals hieronder staat, maar de lengte op basis van een maxvalue die ik uit een database haal.

  1. array(20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,null);


als de $record['maxrank']; = 20 dan dus
  1. array(20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,null);


als de $record['maxrank']; = 18 dan dus
  1. array(18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,null);


als de $record['maxrank']; = 8 dan dus
  1. array(8,7,6,5,4,3,2,1,null);


Momenteel is dit de mogelijke reeks van vastgestelde maximale waardes:
0 8 10 12 14 18 22 26 27 30 32 34 38

Maar dat kan gaan variëren

7 antwoorden

Gesponsorde links
Offline WouterJ - 11/09/2013 14:40 (laatste wijziging 11/09/2013 14:41)
Avatar van WouterJ HTML gevorderde Gebruik PHP.net: range:
  1. range($record['maxrank'], 0);
Offline markla - 11/09/2013 15:47
Avatar van markla PHP interesse Wouter

thanks voor de snel reactie.
zo te zien lijkt de oplossing

alleen nog even kijken of ik toevoeging ,null er nog bij kan krijgen zo dathij
  1. (18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,null);


wordt
Offline WouterJ - 11/09/2013 16:28
Avatar van WouterJ HTML gevorderde Gewoon:
  1. $as = range($record['maxrank'], 1);
  2. array_push($as, null);
Offline Thomas - 07/10/2013 14:43
Avatar van Thomas Moderator Ik zou het gebruik van null-waarden in arrays vermijden, want in het gebruik zijn die niet echt intuïtief, controles met empty() en isset() op dat soort elementen leveren wellicht iets anders op dan je zou verwachten (probeer het maar eens).

Mocht je dan toch -voor wat voor obscure reden dan ook- een "leeg" element aan het einde van je array nodig hebben, gebruik dan False in plaats van Null (isset() en empty() geven dan logischer resultaten). En anders, als je dit element niet nodig hebt, in het geheel weglaten - dit maakt je code en je datastructuren minder complex en daarmee minder foutgevoelig. Als er Null-waarden in je array zitten (of als iemand deze zelf introduceert) moet er een alarmbel gaan rinkelen.
Offline WouterJ - 07/10/2013 16:51
Avatar van WouterJ HTML gevorderde FangorN, oh false ipv null. Dat zijn 2 totaal andere types en dat zou ik nooit doen. En ja, werken met null values kan tricky zijn in PHP, maar goed zodra je dat weet weet je ook dat je dan niet met isset moet gaan werken, maar met array_key_exists. Zodra je dat weet is er niks aan de hand en moeten er zeker geen alarmbellen rinkelen.

En overigens, we zijn hopelijk al afgestapt van het gebruik van empty?
Offline Thomas - 07/10/2013 19:58
Avatar van Thomas Moderator Wellicht bedoel je twee verschillende typen? Je werkt al met integer-values en iets anders. Ik gebruik zelf empty() niet, maar ik wilde het gebruik i.c.m. null aanstippen. Wat ik niet begrijp is dat je een array-element expliciet zou willen initialiseren met een waarde die gebruikt wordt voor het typeren van "geen waarde". Daarnaast heb je dan ook ineens met meerdere value-typen te maken (niet enkel integers), wat het moeilijker kan maken om met zo'n array te werken. Als je complexiteit kunt vermijden moet je dit vooral doen.

Daarom vroeg ik mij hardop af waarom die null-waarde nodig is. In mijn antwoorden ga ik meestal verder dan simpelweg het beantwoorden van de vraag, in de (vaak vergeefse) hoop dat men nadenkt over hoe je dingen slim aanpakt. Althans ik neem aan dat het de bedoeling is dat mensen die deze site bezoeken dit soort zaken op een gegeven moment zelf kunnen oplossen, in plaats van enkel het antwoord copy-pasten zonder er zelf meer over na te denken over hoe iets anders / beter kan worden opgelost? En dan liefst op een zo eenvoudig mogelijke manier, zonder "clutter" die code vaag / onleesbaar maakt.
Bedankt door: Joel, WouterJ
Offline WouterJ - 07/10/2013 20:43
Avatar van WouterJ HTML gevorderde Mee eens FangorN.

Behalve dat ik null en integer niet als andere typen zie. In Haskell gebruik je hiervoor namelijk het Maybe type, die 2 dingen kan hebben: Just ... en Nothing. Nothing is dan de null variant van PHP en Just ... kan gebruikt worden als Just 12. Zo'n array als hierboven is dan:

  1. [Just 10, Just 9, Just 8, Just 7, Just 6, Just 5, Just 4, Just 3, Just 2, Just 1, Nothing]


En tja, typen en types... Dat krijg je als 80% van wat je schrijft over PHP engels is 
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.255s