array_flip

array_flip($array)

Zwraca tablicę z zamienionymi kluczami i wartościami: z wartości stają się klucze, a z kluczy wartości.

Parametry

  • $array – tablica wejściowa. Wartości muszą być liczbami całkowitymi albo ciągami.

Przykłady

print_r(array_flip(array("a" => 1, "b" => 2))); // Array ( [1] => a [2] => b )
print_r(array_flip(array("jabłko", "gruszka"))); // Array ( [jabłko] => 0 [gruszka] => 1 )
// szybkie sprawdzenie, czy wartość należy do dozwolonych
$allowed = array_flip(array("jpg", "png", "gif"));
var_dump(isset($allowed["png"])); // bool(true)
var_dump(isset($allowed["exe"])); // bool(false)
// ta sama wartość kilka razy: zostaje ostatni klucz
print_r(array_flip(array("a" => 1, "b" => 1))); // Array ( [1] => b )
// różne wartości tablicy
echo implode(",", array_keys(array_flip(array("x", "y", "x")))); // x,y
// lista kluczy dla array_intersect_key
$data = array("name" => "Jan", "admin" => 1);
print_r(array_intersect_key($data, array_flip(array("name", "email")))); // Array ( [name] => Jan )

Na co uważać

  • Jeśli wartość w tablicy się powtarza, zostaje tylko jej ostatni klucz. Pozostałe przepadają bez komunikatu.
  • Wartości muszą być liczbami całkowitymi albo ciągami. Liczby zmiennoprzecinkowe, true, false, null i tablice funkcja pomija i wypisuje ostrzeżenie.
  • Sprawdzanie przez isset() na odwróconej tablicy jest przy wielu zapytaniach dużo szybsze niż powtarzane in_array(). Przy kilku wartościach różnicy nie widać.
  • Ciągi liczbowe jako klucze stają się liczbami całkowitymi. Po dwukrotnym odwróceniu wartości nie muszą więc mieć pierwotnego typu.

Powiązane funkcje:
array_keys()
array_unique()
in_array()