Masīvi ir viens no svarīgākajiem datu tipiem PHP — tie ļauj uzglabāt vairākas vērtības vienā mainīgajā. PHP piedāvā gan indeksētos, gan asociatīvos masīvus.

Indeksēti masīvi

Elementi tiek numurēti automātiski, sākot no 0:

<?php
$augļi = ["ābols", "bumbieris", "ķirsis"];

echo $augļi[0]; // ābols
echo $augļi[1]; // bumbieris
echo $augļi[2]; // ķirsis

echo count($augļi); // 3 (elementu skaits)
?>

Asociatīvie masīvi

Elementiem tiek piešķirtas nosauktas atslēgas:

<?php
$lietotājs = [
"vards" => "Jānis",
"uzvards" => "Bērziņš",
"vecums" => 25,
"epasts" => "janis@example.com",
];

echo $lietotājs["vards"]; // Jānis
echo $lietotājs["epasts"]; // janis@example.com
?>

Elementu pievienošana un dzēšana

<?php
$saraksts = ["a", "b"];

$saraksts[] = "c"; // pievieno beigās
array_push($saraksts, "d"); // arī pievieno beigās
array_unshift($saraksts, "z"); // pievieno sākumā

unset($saraksts[0]); // dzēš elementu ar indeksu 0
?>

Masīvu pārskatīšana

<?php
$cenas = ["ābols" => 0.50, "bumbieris" => 0.80];

foreach ($cenas as $nosaukums => $cena) {
echo "$nosaukums maksā €$cena<br>";
}
?>

Daudzlīmeņu masīvi

<?php
$klase = [
["vards" => "Anna", "atzīme" => 9],
["vards" => "Jānis", "atzīme" => 7],
["vards" => "Marta", "atzīme" => 10],
];

echo $klase[0]["vards"]; // Anna
echo $klase[2]["atzīme"]; // 10

foreach ($klase as $students) {
echo "{$students['vards']}: {$students['atzīme']}<br>";
}
?>

Noderīgas masīvu funkcijas

FunkcijaAprakstsPiemērs
count($m)Elementu skaitscount([1,2,3]) → 3
in_array($v, $m)Vai vērtība eksistēin_array("a", $m)
array_key_exists($k, $m)Vai atslēga eksistēarray_key_exists("vards", $m)
sort($m)Sakārto augošā secībāMaina pašu masīvu
rsort($m)Sakārto dilstošā secībāMaina pašu masīvu
array_merge($a, $b)Apvieno masīvusAtgriež jaunu masīvu
array_slice($m, 1, 2)Izgriež daļuNo 1. indeksa, 2 elementus
array_map($fn, $m)Piemēro funkciju katramAtgriež jaunu masīvu
array_filter($m, $fn)Filtrē elementusAtgriež atbilstošos
implode(", ", $m)Apvieno virknē"a, b, c"
explode(",", $s)Sadala masīvā["a", "b", "c"]

Praktisks piemērs

<?php
$skaitļi = [3, 1, 4, 1, 5, 9, 2, 6];

// Filtrēt pāra skaitļus
$pāra = array_filter($skaitļi, fn($n) => $n % 2 === 0);
// [4, 2, 6]

// Dubultot visus
$dubulti = array_map(fn($n) => $n * 2, $skaitļi);
// [6, 2, 8, 2, 10, 18, 4, 12]

// Saskaitīt summu
$summa = array_sum($skaitļi); // 31
?>