Tredun ohjelmistokehittäjien kurssimateriaaleja
Talvallinen taulukko PHP:ssa on samanlainen kuin JavaScriptissakin. Sen voi alustaa kahdella eri tavalla:
$names = ["Tiina", "Janne", "Juuso"];
$cities = array("Tampere", "Helsinki", "Jyväskylä");
Taulukon arvoihin voidaan viitata sen indeksin avulla (indeksointi alkaa nollasta):
<ul>
<?php
echo "<li>$names[0]</li>";
echo "<li>$names[1]</li>";
echo "<li>$names[2]</li>";
?>
</ul>
Edellinen esimerkki toimii vain kun taulukossa on tasan kolme alkiota. Parempi on käyttää toistorakennetta.
PHP:ssa on samankaltaiset toistorakenteet kuin muissakin kielissä: for-silmukka, while-silmukka sekä foreach-rakenne.
PHP-koodi voi olla HTML-koodin koodin kanssa sekaisin, esim. foreach-rakenteen voi laittaa “poikki”, kirjoittaa väliin HTML:ää ja taas jatkaa PHP:tä. Kun ohjelmointirakenne katkaistaan sen perään laitetaan kaksoispiste (:)
Tässä foreach ilman katkaisua:
<?php
foreach ($names as $name){
echo "<li> $name </li>";
}
?>
Tässä foreach katkaistuna niin, että välissä voi olla HTML-koodia:
<?php foreach ($names as $name): ?>
<li> <?= $name ?></li>
<?php endforeach ?>
Tässä sama for - silmukan avulla:
<?php
for ($i = 0; $i < count($names); $i++){
echo "<li> $names[$i] </li>";
}
Tässä for - katkaistuna niin, että välissä voi olla HTML-koodia:
<?php for ($i = 0; $i < count($names); $i++): ?>
<li><?= $names[$i] ?></li>
<?php endfor ?>
Tässä sama while - silmukan avulla:
<?php
$i = 0;
while($i < count($names)) {
echo "<li> $names[$i] </li>";
$i++;
}
?>
Perustaulukon lisäksi PHP:ssä on ns. assosiatiivinen taulukko (associative array), johon voi tallentaa avain-arvo-pareja (key-value-pairs). Tämän taulukon alkioihin viitataan avaimen avulla eli siinä ei indeksejä kuten tavallisessa taulukossa. Taulukon alkioiden avaimet ovat merkkijonoja ja niihin liittyvä arvo tulee nuolen jälkeen.
<?php
$person = [
'name' => 'Erkki'
'age' => 45,
'hair' => 'brown',
];
?>
Arvo saadaan ulos siihen liittyvän avaimen avulla:
<?= $person['name'] ?>
Assosiatiiviseen taulukkoon voi lisätä uuden avain-arvo-parin:
<?php
$person['profession'] = 'programmer';
?>
Ja arvon voi poistaa unset-funktion avulla:
<?php
unset($person['hair']);
?>
Assiosiatiivisesta taulukosta voi hakea arvoa array_search-funktion avulla. Sille annetaan parametrina haettuava arvo sekä taulukko, josta arvoa haetaan. Jos arvo löytyy taulukosta sen avain palautetaan, muuten palautetaan false.
<?php
$key = array_search(45, $person);
if($key != false){
echo $person[$key];
} else {
echo "Ei löydy";
}
?>
Debuggaustarkoituksessa taulukon sisällön voi tulostaa sivulle var_dump-funktion avulla:
<?php
var_dump($person);
?>
Jos haluaa vain katsoa taulukon sisällön eikä halua koodin jatkavan, voi käyttää die-funktiota, joka tässä lopettaa ohjelman suorittamisen heti var_dump:in jälkeen:
<?php
die(var_dump($person));
?>
Funktio | Esimerkki | Toiminta |
---|---|---|
ucwords | ucwords(‘ossi osborne’) | Merkkijonossa olevien sanojen ensimmäiset kirjaimen muuttetaan isoiksi |