В PHP ассоциативные массивы реализованы в виде хэш-таблиц с некоторыми дополнительными функциями.
Однако технически ассоциативный массив не идентичен хеш-таблице - он просто реализован. частично с хеш-таблицей за кулисами. Поскольку большая часть его реализации представляет собой хеш-таблицу, она может делать все, что может хеш-таблица, но может и больше.
Например, вы можете перебрать ассоциативный массив с помощью цикла for, чего нельзя сделать с хеш-таблицей.
Таким образом, хотя они и похожи, ассоциативный массив на самом деле может выполнять надмножество того, что может делать хеш-таблица, поэтому это не совсем то же самое. Думайте об этом как о хэш-таблицах с дополнительными функциями.
Примеры кода:
Использование ассоциативного массива в качестве хеш-таблицы :
$favoriteColor = array();
$favoriteColor['bob']='blue';
$favoriteColor['Peter']='red';
$favoriteColor['Sally']='pink';
echo 'bob likes: '.$favoriteColor['bob']."\n";
echo 'Sally likes: '.$favoriteColor['Sally']."\n";
Цикл по ассоциативному массиву :
$idTable=array();
$idTable['Tyler']=1;
$idTable['Bill']=20;
$idTable['Marc']=4;
foreach($idTable as $person=>$id)
echo 'id: '.$id.' | person: '.$person."\n";
Обратите особое внимание на то, как во втором примере поддерживается порядок каждого элемента (Тайлер, Билл Марк) на основе порядка, в котором они были введены в массив. Это главное различие между ассоциативными массивами и хэш-таблицами. Хэш-таблица не поддерживает связи между элементами, которые она содержит, тогда как ассоциативный массив PHP делает это (вы даже можете отсортировать ассоциативный массив PHP).