Trong PHP, các mảng kết hợp được triển khai dưới dạng hashtables, với một chút chức năng bổ sung.
Tuy nhiên về mặt kỹ thuật, một mảng kết hợp không giống với một bảng băm - nó chỉ đơn giản được triển khai một phần với bảng băm đằng sau hậu trường. Bởi vì hầu hết việc triển khai của nó là một bảng băm, nó có thể làm mọi thứ mà một bảng băm có thể - nhưng nó cũng có thể làm được nhiều hơn thế.
Ví dụ: bạn có thể lặp qua một mảng kết hợp bằng vòng lặp for, điều mà bạn không thể làm với bảng băm.
Vì vậy, trong khi chúng tương tự nhau, một mảng kết hợp thực sự có thể thực hiện một tập hợp siêu tốc những gì một bảng băm có thể làm - vì vậy chúng không hoàn toàn giống nhau. Hãy nghĩ về nó như những hashtables cộng với chức năng bổ sung.
Ví dụ về mã:
Sử dụng một mảng kết hợp làm bảng băm :
$favoriteColor = array();
$favoriteColor['bob']='blue';
$favoriteColor['Peter']='red';
$favoriteColor['Sally']='pink';
echo 'bob likes: '.$favoriteColor['bob']."\n";
echo 'Sally likes: '.$favoriteColor['Sally']."\n";
Vòng qua một mảng kết hợp :
$idTable=array();
$idTable['Tyler']=1;
$idTable['Bill']=20;
$idTable['Marc']=4;
foreach($idTable as $person=>$id)
echo 'id: '.$id.' | person: '.$person."\n";
Đặc biệt lưu ý cách trong ví dụ thứ hai, thứ tự của mỗi phần tử được duy trì (Tyler, Bill Marc) dựa trên thứ tự mà chúng được nhập vào mảng. Đây là sự khác biệt chính giữa mảng kết hợp và bảng băm. Một bảng băm không duy trì kết nối giữa các mục mà nó giữ, trong khi một mảng kết hợp PHP thì có (bạn thậm chí có thể sắp xếp một mảng liên kết PHP).