array_flip (array $tabela)
array_flip() zwraca tablicę w odwróconym porządku, tzn. klucze z tabeli $tabela stają się wartościami, a wartości $tabela stają się kluczami.
Zauważ, że wszystkie wartości tablicy $tabela muszą mieć poprawne klucze, tzn. muszą być albo typu integer lub string. Jeśli wartość nie ma prawidłowego typu, wyświetlone zostanie ostrzeżenie, a para klucz/wartość nie będzie odwrócona.
Jeśli wartość występuje wielokrotnie, ostatni klucz będzie użyty jako jej wartość po odwróceniu, a wszystkie inne zostaną stracone.
array_flip() zwraca FALSE, jeśli nie powiedzie się odwracanie tablicy.
$tablica4 = array ("a" => "zielony", "czerwony", "niebieski", "czerwony", "fioletowy"); $c = array_flip ($tablica4); print_r($c);
Array ( [zielony] => a [czerwony] => 2 [niebieski] => 1 [fioletowy] => 3 )
$tablica1 = array ("zielony", "czerwony", "niebieski", "czarny", "fioletowy"); $c = array_flip ($tablica1); print_r($c);
Array ( [zielony] => 0 [czerwony] => 1 [niebieski] => 2 [czarny] => 3 [fioletowy] => 4 )
$input = array("a" => 1, "b" => 1, "c" => 2); $flipped = array_flip($input); print_r($flipped);
Array ( [1] => b [2] => c )
Czasami funkcja potrafi zgubić pewne powtarzające się w tablicy elementy:
$a = array('one', 'two', 'one'); print_r($a); $b = array_flip($a); print_r($b);
array(3) { [0] => string(3) "one" [1] => string(3) "two" [2] => string(3) "one" } array(2) { 'one' => int(2) 'two' => int(1) }
Rezultatem funkcji są ostatni i przedostatni element tablicy.
Czasami funkcja potrafi zaskakiwać:
$intArray1 = array(-4,1,1,3); print_r($intArray1); $intArray2 = array_flip($intArray1); print_r($intArray2);
Array ( [-4] => 0 [1] => 2 [3] => 3 )
Czyścimy tablicę z pustych elementów null:
$ar = array(null,'1','2',null,'3',null); print_r($ar);
Wyświetli to naszą tablicę:
Array ( [0] => [1] => 1 [2] => 2 [3] => [4] => 3 [5] => )
Odwracamy:
print_r(array_flip(array_flip($ar)));
Efektem jest tablica bez elementów null:
Array ( [1] => 1 [2] => 2 [4] => 3 )
Czyścimy tablicę z wybranego elementu:
$arr = array(11,12,13,12,33,78); // sample array $arr = array_flip($arr); unset($arr[12]); $arr = array(array_keys($arr));
Pozbyliśmy się z tablicy wartości 12, a rezultat jest następujący:
Array ( [0] => Array ( [0] => 11 [1] => 13 [2] => 33 [3] => 78 ) )
Ostatni najdłuższy element tablicy:
$array = array("input" => "submit", "textarea" => "Some long spiel of textrna textarea, probably", "another-input" => "make me longer", "and" => "another", "etc" => "etc."); echo '<!DOCTYPE HTML SYSTEM><html><head><title>long</title></head><body><pre>Longest value: ', get_longest_value($array),'</pre></body></html>'; function get_longest_value($array) { foreach ($array as $key => $value) { $lengths[$key] = strlen($value); } asort($lengths); $lengths = array_flip($lengths); $longest = str_replace("rn", "n", $array[array_pop($lengths)]); if (get_magic_quotes_gpc()) { return stripslashes($longest); } return $longest; } $tablica1 = array ("zielony", "czerwony", "niebieski", "czarny", "fioletowy"); $c = get_longest_value ($tablica1); print_r($c);
Wynik:
Longest value: Some long spiel of text a textarea, probably fioletowy