PHP
PHP KOULUTUSTA VUONNA 2025!
-
PHP koulutus
-
WordPress PHP-devaajalle koulutus
-
MySQL koulutus
-
Apache HTTPd koulutus
-
Microsoft IIS koulutus
Kurssit saatavilla kautta Suomen. Tule ja varaa oma koulutustapahtumasi heti! Koulutuksen järjestää asiantuntijasi Koulutus- ja konsultointipalvelu KK Mediat.
PHP:n tietotyypit: taulukot (array)
PHP:n taulukko (array) on tietorakenne, joka tallentaa joukon arvoja yhteen muuttujaan. Jokaisella arvolla on yksilöllinen numeerinen indeksi tai nk. tekstiavain, jonka avulla arvoon pääsee käsiksi. Taulukoita käytetään, kun halutaan säilyttää ja käsitellä useita tietoja järjestyksessä tai ryhmissä - esimerkiksi tietokantakyselyjen tulosjoukot palautetaan usein taulukkomuotoisena.
Taulukko voidaan luoda joko käyttämällä funktiota array()
tai määrittelemällä muuttuja taulukoksi sijoittamalla arvo hakasulkeiden ([]
) sisään.
Kuten useimmissa muissakin ohjelmointikielissä, myös PHP:ssä taulukon perusindeksi on 0.
Taulukkotyyppistä dataa sisältävä muuttuja tulisi nimetä arr-alkuliitteellä. Esimerkiksi:
<?php
$arrHedelmät = ["omena", "banaani", "kirsikka"];
$arrHedelmät2 = array("kiiwi", "mansikka", "luumu");
?>
Yksiulotteiset taulukot
Indeksoitu taulukko
Nimensä mukaisesti indeksoitu taulukko perustuu siihen, että taulukon jokaisella jäsenellä on numeerinen indeksi. Esimerkiksi:
<?php
$arrHedelmat = ["omena", "banaani", "kirsikka"];
echo $arrHedelmat[1]; // tulostaa banaani
?>
Saman koodin olisi voinut kirjoittaa myös seuraavalla tavalla:
<?php
$arrHedelmat[0] = "omena";
$arrHedelmat[1] = "banaani";
$arrHedelmat[2] = "kirsikka";
echo $arrHedelmat[1]; // tulostaa banaani
?>
Kun taulukkomuuttujaan lisätään arvo käyttäen tyhjiä hakasulkeita, arvo lisätään taulukon loppuun:
<?php
$arrHedelmat = ["omena", "banaani", "kirsikka"];
$arrHedelmat[] = "appelsiini";
echo $arrHedelmat[3]; // appelsiini
?>
PHP tallentaa ainoastaan indeksit, jotka erikseen määrätään. Alla olevassa esimerkissä PHP luo ainoastaan indeksit 0,1,2,3 ja 999:
<?php
$arrHedelmat = ["omena", "banaani", "kirsikka"];
$arrHedelmat[999] = "appelsiini";
echo $arrHedelmat[999]; // appelsiini
?>
Assosiatiivinen taulukko
PHP:ssä taulukko voidaan muodostaa myös nk. avain-arvo pareilla. Tällöin puhutaan assosiatiivisesta taulukosta tai hashtablesta:
<?php
$arrHedelmat = [
"a" => "Omena",
"b" => "Banaani",
"c" => "Kirsikka"
];
echo $arrHedelmat["b"]; // Tulostaa: Banaani
?>
Tietokantakyselyiden tuloksia käsitellessä tulosjoukko halutaan palauttaa usein assosiatiivisena taulukkona. Tämä helpottaa tietokannan rakenteen hahmottamista:
<?php
$conn = new mysqli("localhost", "username", "password", "database");
if ($conn->connect_error) {
die("Yhteys epäonnistui: " . $conn->connect_error);
}
$sql = "SELECT id, nimi, hinta FROM tuotteet";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// nouda tulosjoukko taulukkona
while ($row = $result->fetch_assoc()) {
echo "ID: " . $row["id"] . "\n";
echo "Nimi: " . $row["nimi"] . "\n";
echo "Hinta: " . $row["hinta"] . "\n\n";
}
} else {
echo "Ei tuloksia.";
}
$conn->close();
?>
Moniulotteiset taulukot
Moniulotteinen taulukko tarkoittaa taulukkoa, jonka alkio on toinen taulukko - eli taulukko taulukon sisällä. Moniulotteinen taulukko luodaan lisäämällä taulukkomäärittelyn perään toinen []-merkintä. Esimerkiksi:
<?php
$arrHedelmaPeli = [
"hedelmat" => ["a" => "Omena", "b" => "Banaani", "c" => "Vattu"],
"voitot" => [1, 2, 3, 4, 5, 6]
];
echo $arrHedelmaPeli["hedelmat"]["b"]; // Tulostaa: Banaani
?>
Superglobaalit taulukkomuuttujat
PHP:ssa erilaiset ympäristömuuttujat kuten evästeet, lomake- ja URL-data tallentuvat nk. superglobaaleihin taulukkomuuttujiin.
Superglobaali tarkoittaa sitä, että nämä muuttujat ovat kutsuttavissa kaikissa tilanteissa.
Ja koska ne ovat taulukoita voi niiden alkioita aksessoida samalla tavoin tavallisia assosatiivisia taulukoita.
Alla olevassa esimerkissä REQUEST_METHOD
on superglobaalin taulukkomuuttujan $_SERVER
avain.
<?php
// tarkistetaan onko sivunlataus POST-menetelmällä tehty
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
// Tämä koodi suoritetaan vain jos pyyntö on POST
echo "Sivu ladattiin POST-pyynnöllä!";
}
?>
Taulukossa liikkuminen
Taulukon sisältämien arvojen määrän saat palautettua count()
-funktion avulla.
<?php
$arrHedelmat = ["omena", "banaani", "kirsikka"];
echo count($arrHedelmat); // 3
?>
Taulukon läpikäyminen onnistuu helposti silmukkaohjausrakenteilla. Alla olevassa esimerkissä hyödynnetään for-silmukkaa yhdessä count()-funktion kanssa
<?php
$arrHedelmat = ['omena', 'banaani', 'appelsiini'];
$iAlkiot = count($arrHedelmat);
for ($i = 0; $i < $iAlkiot; $i++) {
echo $arrHedelmat[$i] . "\n";
}
?>
Vaihtoehtoisesti taulukon sisällön olisi voinut iteroida myös foreach()-rakenteen avulla:
<?php
// käsitellään lomakedata
$sViesti = "";
foreach ($_POST as $avain => $arvo) {
$sViesti .= "$avain: $arvo\n";
}
// lähetetään lomake eteenpäin
mail("sales@2kmediat.com","Yhteydenotto",$sViesti);
?>
Taulukon lajittelu
Taulukossa oleva data voidaan lajitella käyttämällä hyväksi jotain seuraavista funktioista:
asort()
, arsort()
, ksort()
, rsort()
, sort()
, uasort()
, usort()
ja uksort()
.
PHP:n oma dokumentaatio tarjoaa lisätietoa eri menetelmien eroista taulukoiden lajittelussa.
<?php
$arrHedelmat = ["banaani", "omena", "kirsikka"];
sort($arrHedelmat);
print_r($arrHedelmat); // banaani, kirsikka, omena
?>