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?
<?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ä.
array_shiftaa se eka siitä h1:n väliin ja käy loput läpi normaalisti.
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.
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.
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!
Aihe on jo aika vanha, joten et voi enää vastata siihen.