array_flip() i array_reverse()
Nazwy tych funkcji są bardzo podobne znaczeniowo i dużo osób myli jedną z drugą. Prawda jest taka, że w praktyce funkcje te robią dwie różne rzeczy.
array_flip
Funkcja array_flip() faktycznie „odwraca”, ale nie tyle tablicę, co pary klucz – wartość. Najprościej mówiąc, array_flip() zwraca nam tablicę, w której wartościami są klucze z tablicy wejściowej, a kluczami wartości.array array_flip (array $trans)
Należy pamiętać, że funkcja ta zadziała tylko dla wartości typu integer lub string. Jeśli wartość będzie innego typu, zostanie wygenerowane ostrzeżenie i zamiana nie nastąpi.
Przykład:
$a = array(13 => 'foo', 10 => 'bar', 20 => 'baz', 15 => 'foo'); $b = array_flip($a); print_r($b);
Array
(
[foo] => 15
[bar] => 10
[baz] => 20
)
Warto tutaj zwrócić uwagę również na to, że jeśli wartości w tablicy wejściowej się powtarzają, array_flip() bierze pod uwagę ostatnią z nich. W powyższym przypadku dwa razy występuje wartość ‘foo’, z tym że przypisana jest do dwóch różnych kluczy: 13 i 15. Jak widać, w tablicy wynikowej mamy parę foo => 15.
Dodajmy teraz do tablicy wejściowej element, którego wartością będzie inna tablica:
$a = array(13 => 'foo', 5 => array(1,2,3), 10 => 'bar', 20 => 'baz', 15 => 'foo'); $b = array_flip($a); print_r($b);
array_reverse
Natomiast funkcja array_reverse() rzeczywiście „odwraca” tablicę, tzn. wynikiem jej działania jest tablica, której wartości układają się odwrotnie w stosunku do tablicy wejściowej.array array_reverse (array $array [, bool $preserve_keys = false])
Funkcja bierze tablicę $array i zwraca nową, której elementami są elementy tablicy wejściowej ułożone w odwrotnej kolejności.
I drobny przykład:
$a = array(13 => 'foo', 10 => 'bar', 20 => 'baz'); $b = array_reverse($a); print_r($b);
Array
(
[0] => baz
[1] => bar
[2] => foo
)
Należy zauważyć tutaj, że klucze nie zostały zachowane. Aby tak się stało należy przy wywołaniu funkcji, jako drugi parametr podać true.
Tablice – wprowadzenie Zabawy ze wskaźnikiem tablicowym