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