Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Explode + silmukka -sovellutus

juhana [21.03.2006 16:39:07]

#

Kuvitellaanpa tällainen muuttuja:

$nimet = "Kalle,Ville,Julle,Polle";

Tuo $nimet -muuttuja täytyisi pilkkoa osiin. No, sehän käy explodella. Oletetaan lisäksi, että pilkottavia osia voi olla tuossa vaihteleva määrä. No, silmukallahan sen pitäisi hoitua melko helposti.

Mutta, jospa tilanne onkin se, että ensimmäinen pala (eli Kalle) pitäisi saada <h1> ja </h1> -tagien väliin ja kaikki loput palaset aina <p> ja </p> -tagien väliin... Mitenkäs saisi tämmöisen sovellettua?

ajv [21.03.2006 16:43:02]

#

<?php
for($i=0; $i<count($nimitaulukko); $i++){
   echo $i == 0 ? "<h1>{$nimitaulukko[$i]}</h1>" : "<p>{$nimitaulukko[$i]}</p>";
}
?>

Ja jos tuo echo $i == 0 ? ... menee yli hilseen, niin sen voi korvata ihan tavallisella if-elsellä.

Blaze [21.03.2006 16:44:09]

#

array_shiftaa se eka siitä h1:n väliin ja käy loput läpi normaalisti.

Antti Laaksonen [21.03.2006 16:45:00]

#

Ainoa juju on siinä, että ensimmäinen nimi tulostetaan erikseen ja silmukka aloitetaan toisesta nimestä:

<?php

$nimet = "Kalle,Ville,Julle,Polle";

$osat = explode(",", $nimet);

echo "<h1>" . $osat[0] . "</h1>";
for ($i = 1; $i < count($osat); $i++) {
    echo "<p>" . $osat[$i] . "</p>";
}

?>

Tämän voi tehdä toisinkin, niin kuin ajv todisti.

ajv [21.03.2006 16:45:10]

#

Juu... Blazen tapa tosiaan parempi.

Edit: Anttikin kerkesi jo oman esimerkkinsä laittamaan... :) Toi mun tapa on se epäoptimaalisin, sillä siinä tarkastetaan joka kierroksella tuo $i:n arvo.

juhana [21.03.2006 16:48:51]

#

Antti Laaksonen kirjoitti:

Ainoa juju on siinä, että ensimmäinen nimi tulostetaan erikseen ja silmukka aloitetaan toisesta nimestä

No näin ajattelinkin, mutta toteutus kävi liian vaikeaksi :) Kiitokset ripeästä avusta!

Vastaus

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

Tietoa sivustosta