Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: PHP: foreach vain osalle taulukosta?

Pallo [01.06.2008 15:52:00]

#

Käytän forach-silmukkaa lukeakseni kansion tiedostot läpi:

<?php
foreach (glob("*.php") as $filename) {
    echo $filename;
}
?>

Kuinka olisi mahdollista määrittää, että tiedostoja aletaan lukea
esimerkiksi viidennen tiedoston kohdalta ja lukeminen päättyy kahdenkymmenen
tiedoston kohdalla?

TsaTsaTsaa [01.06.2008 15:56:33]

#

Ainakin tällä lailla voit tehdä

<?php
$laskuri = 0;
$alku = 5;
$loppu = 5;
foreach (glob("*.php") as $filename) {
    $laskuri++;
    if ( $laskuri >= $alku && $laskuri <= $loppu ) {
        echo $filename;
    }
}
?>

Pekka Karjalainen [01.06.2008 16:32:13]

#

Varmaankin oli tarkoitus kirjoittaa $loppu = 20; . (Terveisin Herra Itsestäänselvyys.)

tsuriga [01.06.2008 16:42:19]

#

Sama LimitIteratorilla. Tässä tulee huolehtia pysymisestä rajojen sisällä, muuten heitetään virhettä.

<?php

$fileIterator = new LimitIterator(
                                   new ArrayIterator( glob( "*.php" ) ),
                                   5, 20
                                 );
foreach ( $fileIterator as $filename ):
    //...
endforeach;

?>

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta