Ga naar inhoud

[PHP] - foreach loop manipuleren


Aanbevolen berichten

G'day, Ik heb de volgende code (sterk ingekort):[code:1:5b0d1ad4fe]<?php $msgs = imap_sort ($stream, SORTARRIVAL, 1, SE_NOPREFETCH, "UNDELETED"); $mail_amount = count ($msgs); $msgnumber = 0; foreach ($msgs as $i) { // een heel stuk code staat hier (in dit geval niet van belang) $msgnumber++; if ($msgnumber == 101) { break; } } ?>[/code:1:5b0d1ad4fe] De loop zal stoppen na 100 keer. Het is echter de bedoeling dat deze start bij het 51ste item, zodat er dan uiteindelijk maar 50 keer geloopt wordt. Waarom heb ik dit nodig? Het gaan om pagina's. Op pagina 1 is het geen probleem, dan begint hij bij 1 maar op pagina 2 moet hij beginnen met 51, pagina 2 met 101, ... Is er een simpele (en vooral zeer snelle) manier om de eerste x aantal keer van een loop over te slaan? Greetz, BelgiumBoy_007
Link naar reactie
[quote:aa54990b0e="BelgiumBoy_007"] Waarom heb ik dit nodig? Het gaan om pagina's. Op pagina 1 is het geen probleem, dan begint hij bij 1 maar op pagina 2 moet hij beginnen met 51, pagina 2 met 101, ...[/quote:aa54990b0e] Die laatste pagina 2 zal wel 3 moeten zijn. Als dat inderdaad zo is kun je het begin en einde beter berekenen. [code:1:aa54990b0e] $start = (($pagina - 1) * 50 ) +1; $einde = $start + 49; [/code:1:aa54990b0e] en dan een for loop wimb
Link naar reactie
[quote:bf0008db28="WimB"][quote:bf0008db28="BelgiumBoy_007"] Waarom heb ik dit nodig? Het gaan om pagina's. Op pagina 1 is het geen probleem, dan begint hij bij 1 maar op pagina 2 moet hij beginnen met 51, pagina 2 met 101, ...[/quote:bf0008db28] Die laatste pagina 2 zal wel 3 moeten zijn. Als dat inderdaad zo is kun je het begin en einde beter berekenen. [code:1:bf0008db28] $start = (($pagina - 1) * 50 ) +1; $einde = $start + 49; [/code:1:bf0008db28] en dan een for loop wimb[/quote:bf0008db28]En wat als ik op bvb. pagina 1 zit en de nummers 20, 21, 22, 30 ontbreken uit de reeks?
Link naar reactie
Het probleem is ondertussen al opgelost ... Ik ben tot de geniale ontdekking gekomen dat de array $msgs continu is maar de inhoud niet. Dit is zonder twijfel verkeerd geformuleerd dus even een demonstratie.[code:1:8b8b19a890]<?php print ("<pre>"); print_r ($msgs); print ("</pre>"); ?>[/code:1:8b8b19a890]GEEFT:[code:1:8b8b19a890]Array ( [0] => 19 [1] => 20 [2] => 6 [3] => 7 [4] => 9 [5] => 23 [6] => 11 [7] => 12 [8] => 13 [9] => 10 [10] => 8 [11] => 5 [12] => 22 [13] => 18 [14] => 21 [15] => 17 [16] => 1 [17] => 3 [18] => 2 [19] => 4 [20] => 14 [21] => 15 [22] => 16 )[/code:1:8b8b19a890]En daarmee is het wel doenbaar met een for-loop :P
Link naar reactie

Om een reactie te plaatsen, moet je eerst inloggen

Gast
Reageer op dit topic

×   Geplakt als verrijkte tekst.   Herstel opmaak

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

×
×
  • Nieuwe aanmaken...