W PHP tablice asocjacyjne są implementowane jako tabele skrótów, z odrobiną dodatkowej funkcjonalności.
Jednak technicznie rzecz biorąc, tablica asocjacyjna nie jest identyczna z tablicą haszującą - jest po prostu zaimplementowana częściowo z tablicą haszującą za kulisami. Ponieważ większość jego implementacji to hashtable, może zrobić wszystko, co może hashtable - ale może też zrobić więcej.
Na przykład możesz zapętlić tablicę asocjacyjną za pomocą pętli for, czego nie możesz zrobić z tablicą haszującą.
Więc chociaż są podobne, tablica asocjacyjna może w rzeczywistości zrobić nadzbiór tego, co może zrobić tablica haszy - więc nie są dokładnie tym samym. Pomyśl o tym jak o tabelach mieszających i dodatkowej funkcjonalności.
Przykłady kodu:
Używanie tablicy asocjacyjnej jako tablicy hashy :
$favoriteColor = array();
$favoriteColor['bob']='blue';
$favoriteColor['Peter']='red';
$favoriteColor['Sally']='pink';
echo 'bob likes: '.$favoriteColor['bob']."\n";
echo 'Sally likes: '.$favoriteColor['Sally']."\n";
Przechodzenie przez tablicę asocjacyjną :
$idTable=array();
$idTable['Tyler']=1;
$idTable['Bill']=20;
$idTable['Marc']=4;
foreach($idTable as $person=>$id)
echo 'id: '.$id.' | person: '.$person."\n";
Zwróć uwagę szczególnie na to, że w drugim przykładzie kolejność każdego elementu (Tyler, Bill Marc) jest utrzymywana na podstawie kolejności, w jakiej zostały wprowadzone do tablicy. Jest to główna różnica między tablicami asocjacyjnymi a tablicami mieszającymi. Tablica haszująca nie utrzymuje żadnego połączenia między przechowywanymi elementami, podczas gdy tablica asocjacyjna PHP tak (można nawet posortować tablicę asocjacyjną PHP).