-
Klíče
- číselné
- asociativní // $stat["CR"] = "Praha";
-
Vícerozměrná pole
- $staty = array("CR" => array("hlavni_mesto" => "Praha", "popoulace" => "10 mil."););
-
Výstup polí
-
print_r
- odešle na výstup obsah jakékoliv proměnné, umí zobrazit obsah pole i objektu do čitelného formátu
- nepovinný parametr return (true) vrátí výstup volajícímu, ne na standardní výstup
-
Jak se vytvoří pole
- $stat[0] = "CR";
$stat[1] = "SR";
// funguje i u asociativních polí
- $stat[] = "CR";
// pouze číselné vzestupné indexy
- array()
-
list()
- v jediné operaci přiřadí do proměnných hodnoty extrahované z nějakého pole
- $pole[] = "Matous";
$pole[] = "Havlena":
list($jmeno, $prijmeni) = $pole;
- Velmi užitečné pro vytahování dat z databáze!!!
-
range(od, do, po_kolika(nepovinne))
- vytvoří posloupnost pole, počínaje hodnotou od do hodnoty do, muze jit i po delsich krocich
-
Test na pole
- is_array()
-
Přidávání a odstraňování prvků pole
-
$arrayname[]
- viz předtím jak se přímo vytvoří pole
-
array_push($pole, "a", "b", ...)
- přídá proměnné na konec pole $pole
-
array_pop($pole)
- vrátí poslední prvek
-
array_shift($pole)
- vrátí první prvek
-
array_unshift($pole, "a", "b", ...)
- přidává prvky na začátek pole $pole
-
array_pad($pole, $delka, $vych_hodnota)
- zvětší délku pole specifikovanou argumentem delka a naplni ho hodnotou vych_hodnota
- pokud délka menší než pole, nic se neprovede
- kladna vych_hodnota doplni pole vpravo, zaporna vlevo
-
Vyhledávání prvků v poli
-
in_array($jehla, $kupka_sena, strict(nepoviné))
- hledá $jehlu jako hodnotu v poli $kupka_sena, vrací true nebo false
- strict říká, zda brát v úvahu i typ
-
array_keys($pole, $hodnota(nepovinný))
- vrátí pole všech klíčů, je-li uvedena $hodnota, tak se vrátí pouze ty klíče, které odpovídají dané hodnotě
-
array_key_exists($klic, $pole)
- vrátí true pokud najde v poli daný klíč
-
array_values($pole)
- vrátí všechny hodnoty v poli do pole s číselnými indexy
-
array_search($jehla, $kupka_sena, strict(1 - nepovinný))
- hledá v poli $kupka_sena hodnotu $jehla a vrátí její klíč nebo false
-
Procházení polí
-
key($pole)
- vrátí klíč umístěný na aktuální pozici ukazatele
-
reset($pole)
- nastaví ukazatel zpět na začátek
-
each($pole)
- vrátí aktuální dvojici klíč/hodnota a posune ukazatel o jednu pozici, pokud se ukazatel před voláním nacházel na konci pole, vrátí FALSE
- Vrácené pole se skládá ze 4 klíčů (0 a key, 1 a value)
-
current($pole)
- vrátí hodnotu pole nacházející se na aktuální pozici ukazatele
-
end($pole)
- posune ukazatel na poslední prvek a vrátí jeho pozici
-
next($pole)
- posune ukazatel dopředu a vrátí hodnotu pole
-
prev($pole)
- posune ukazatel zpět dozadu a vrátí hodnotu pole na dané pozici, pokud je ukazatel před voláním na 1. pozici, vrátí false
-
array_walk(&$pole, "funkce", $userdata(nepovinné))
- Předá každý prvek z pole array uživatelsky definované fci funkce.
- Pokud chceme upravovat dvojice klíč/hodnota, musíme je předávat ve fci odkazem.
- Uživatelsky definovaná fce musí přebírat 2 vstupní parametry. 1. reprezentuje aktuální hodnotu a 2. aktuální klíč. Jestliže uvedem i nepovinný parametr userdata, pak se jeho hodnota předá jako 3. parametr.
- Dobré pro desinfekci dat předaných formulářem.
-
array_reverse($pole, preserve_keys(true - nepovinné))
- Obrátí pořadí prvků v poli. Je-li preserve_keys na true, zachovají se původní klíče, jinak každá nová hodnota bude mít klíč hodnoty, která se zde nacházela předtím.
-
array_flip($pole)
- Prohodí klíče a hodnoty.
-
Zjištění velikosti a jedinečných hodnot pole
-
count($pole, mode(1 - nepovinný))
- Vrátí celkový počet hodnot. Je-li zapnutý nepovinný parametr mode na 1, bude se počítat i rekursivně (tedy i vícerozměrná pole - pozor, i pole typu "a" => array(..) se počítá za prvek).
-
sizeof()
- to samé co count()
-
array_count_values($pole)
- Vrátí pole z asociativních dvojic klíč/hodnota. Každý klíč reprezentuje nějakou hodnotu nalezenou v poli, jemu odpovídající hodnota označuje četnost tohoto klíče (jako hodnota).
-
array_unique($pole)
- Odstraní všechny duplicitní hodnoty v poli. Vrátí pole skládající se pouze z jedinečných hodnot.
-
Setřídění prvků polí
- Všechny algoritmy pracují v souladu s pravidly angličtiny. Pokud chceme svá místní nastavení, musíme nastavit pomocí fce setlocale().
-
sort($pole, sort_flags(nepovinné))
- Uspořádá "na místě" prvky od nejnižší po nejvyšší hodnoty.
- sort_flags modifikuje chování fce:
SORT_NUMERIC - číselně
SORT_REGULAT - podle ASCII
SORT_STRING - nejlépe odpovídá lidským představám
- Neuchová asociace klíč/hodnota. Pak pomůže asort().
-
natsort($pole)
- uspořádá takto: picture1, picture2, picture10, picture20
-
natcasesort($pole)
- Identická s natsort(), ale nerozlišuje velikost písmen.
-
rsort($pole, sort_flags(nepovinné))
- Jako sort(), ale seřadí prvky opačně.
-
asort($pole, sort_flags(nepovinné))
- Jako sort(), ale zachová asociace klíč/hodnota.
-
array_multisort($pole1, poradi, typ, $pole2, poradi, typ, ...)
- Setřídí několik polí naráz a umí také třídit mnoha způsoby vícerozměrné pole. Vrátí true pokud úspěšná.
- Za každým polem mohou následovat přepínače, které určují způsob třídení.
-
2 druhy přepínačů: pořadí a typ
- pořadí: SORT_ASC, SORT_DESC
- typ: SORT_REGULAR, SORT_NUMERIC, SORT_STRING
-
arsort($pole, sort_flags(nepovinné))
- Podobně jako asort() udržuje asociace klíč/hodnota. Setřídí však pole v opačném pořadí.
-
ksort($pole, sort_flags(nepovinné))
- Setřídí vstupní pole podle jeho klíčů. Vrátí true v případě úspěchu, jinak false.
-
krsort($pole, sort_flags(nepovinné))
- Jako ksort(), ale v opačném pořadí.
-
usort(&$pole, "funkce")
- Setřídí pole podle uživatelsky definovaného porovnávacího algoritmu zakompovaného do nějaké fce.
- Uživatelsky definovaná fce musí přebírat 2 argumenty a musí vrácet záporné (v případě že je 1. argument menší jak 2.), 0 (stejné), nebo kladné číslo.
-
Kombinace, sloučení, extrakce a porovnání
-
array_combine($klice, $hodnoty)
- Vytvoří nové pole z daných klíčů a hodnot. Obě pole musí být stejně velké a neprázdné.
-
array_merge($pole1, $pole2, ...)
- Sloučí pole dohromady a vrátí jediné pole. Jednotlivá pole se budou připojovat za sebou.
- Pokud vstupní pole obsahuje řetězcový klíč, který už ve výsledném poli existuje, přepíše se novou hodnotou. To však neplatí pro číselné klíče, při nich se přídá do pole.
-
array_merge_recursive($pole1, $pole2, ...)
- Stejně jako array_merge(), akorát pokud při slučování existují stejné klíče, sloučí se do jednoho pole a vytvoří se pole vícerozměrné.
-
array_slice($pole, $offset, $length(nepovinné))
- Vrátí část pole počínaje klíčem offset a pozicí offset + length. Obě hodnoty zase mohou být záporné i kladné (intuitivně domyslíme). Pokud není length, skončí posledním prvkem pole.
-
array_splice($pole, $offset, $length(nepovinné), $replacement(nepovinné))
- Odstraní z pole všechny prvky počínaje pozicí odpovídající hodnotě offset a konče pozicí offset + length. Vrátí odstraněné prvky ve formě pole.
- Nepovinný parametr replacement udává pole, které nahradí odstraňovaný segment.
-
array_intersect($pole1, $pole2, ...)
- Vrátí průnik polí (bere v potaz hodnoty). Klíče se zachovají.
-
array_intersect_assoc($pole1, $pole2, ...)
- Stejně jako array_intersect(), ale bere v úvahu při porovnávání i klíče.
-
array_diff($pole1, $pole2, ...)
- Vrátí ty hodnoty z $pole1, které nejsou v žádném z ostatních vstupních polí. Opak array_intersect().
-
array_diff_assoc($pole1, $pole2, ...)
- Stejně jako array_diff(), akorát bere v úvahu i klíče.
-
Ostatní
-
array_rand($pole, num_entries(nepovinné))
- Vrátí jeden nebo více klíčů ze vstupního pole. Neuvede-li se num_entries, vrátí se jeden náhodně vybraný klíč.
-
shuffle($pole)
- Náhodně přeskládá prvky v poli.
-
array_sum($pole)
- Sečte všechny hodnoty pole a vrátí celkový součet. Najdou-li se v poli hodnoty jiného typu než číselného, ignorují se.
-
array_chunk($pole, $size, preserve_keys(nepovinné))
- Rozčlení pole na vícerozměrné pole skládající se z několika menších polí obsahujících size prvků.
- Není-li velikost dělitelná beze zbytku, bude poslední pole obsahovat méně než size prvků.
- Zapne-li se preserve_keys, zachovají se klíče hodnot.