Nakon ovog poglavlja
Što ćete znati napraviti
- Razlikovati indeksirana i asocijativna polja.
- Sigurno čitati, dodavati, filtrirati i preslikavati elemente.
- Prepoznati trenutak kada polje treba postati objekt.
Jedan tip, dvije uloge
Popis i mapa
PHP array je uređena mapa pa može glumiti popis i zapis s imenovanim ključevima. Za popis koristimo uzastopne brojčane ključeve, a za zapis jasne tekstualne ključeve. Miješanje obaju stilova u istom polju otežava rad.
<?php
$tags = ['php', 'sigurnost', 'web'];
$article = [
'id' => 42,
'title' => 'Moderni PHP',
'published' => true,
];
Ključ možda ne postoji
Čitanje bez upozorenja
Operator ?? daje zadanu vrijednost ako ključ ne postoji ili sadrži null. array_key_exists razlikuje nepostojeći ključ od postojećeg ključa s null vrijednošću. isset je brz, ali za null vraća false.
<?php
$title = $article['title'] ?? 'Bez naslova';
$hasSummary = array_key_exists('summary', $article);
$tags[] = 'php-8.5';
unset($article['legacy_field']);
Namjerna obrada
map, filter i reduce
array_map pretvara svaki element, array_filter zadržava elemente koji prolaze uvjet, a array_reduce svodi skup na jednu vrijednost. Za poslovno složen niz koraka običan foreach često je čitljiviji.
<?php
$numbers = [3, 8, 12, 5];
$evenSquares = array_map(
fn (int $number): int => $number ** 2,
array_filter($numbers, fn (int $number): bool => $number % 2 === 0)
);
Primijenite naučeno
Vježba: Katalog članaka
Napravite polje od najmanje pet članaka i pripremite popis objavljenih naslova.
- Svaki članak neka ima id, title i published.
- Filtrirajte samo objavljene članke.
- Preslikajte rezultate u polje naslova.
Za provjeru i nastavak