Home  |  Linux  | Mysql  | PHP  | XML
From:M. Sokolewicz Date:Mon Jun  9 09:04:57 2008
Subject:Re: foreach loop herdefinieren
Arnoud wrote:
> In het onderstaande voorbeeld maakt de foreach loop gewoon het hele eerste array af van 1 tot 0. Graag had ik gezien dat de lijst zou worden omgezet in 1,2,3,4,8,9,0. Wat ik met de unset heb geprobeerd, maar daarmee maak je het foreach geheugen niet leeg. Wie helpt me aan een functie of een paar extra regels, zodat ik dat wel kan??
> 
> <?php
>   $arr = array(1,2,3,4,5,6,7,8,9,0);
>   foreach($arr as $a) {
>     echo "$a\n";
>     if ($a == 5) {
>       unset($arr);
>       $arr = array(8,9,0);
>     }
>   }
> ?>
> 
> Met vriendelijk groet,  Arnoud
> kettenis@hotmail.com
> 

Dit is de mailinglijst voor de nederlandse vertaling van de PHP 
handleiding, niet voor hulp met code. Daarvoor kun je beter een mail 
sturen naar php-general@lists.php.net

Om antwoord te geven op je vraag: Je kunt 2 dingen doen:
1. de input array veranderen in: $arr = array(1,2,3,4,5,8,9,0);
of
2. ertussen skippen met continue; dus:
$arr = array(1,2,3,4,5,6,7,8,9,0);
foreach($arr as $a) {
if($a > 5 and $a < 8) {
continue;
} else {
    echo $a, "\n";
    // doe iets
}
}

De input array van de foreach veranderen _terwijl_ die hem loopt is 
gevaarlijk, maar kan als je een reference gebruikt. Opnieuw, dit is in 
99.999% van de gevallen een slecht idee.

- Maciek
Navigate in group php.doc.nl at sever news.php.net
Previous Next




  
© No Copyright
You are free to use Anything
Site Maintained by PHP Developer
Powered By PHP Consultants