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";
특히 두 번째 예에서 각 요소의 순서가 배열에 입력 된 순서에 따라 유지되는 방식 (Tyler, Bill Marc)에 유의하십시오. 이것은 연관 배열과 해시 테이블의 주요 차이점입니다. 해시 테이블은 보유하고있는 항목 간의 연결을 유지하지 않는 반면, PHP 연관 배열은 수행합니다 (PHP 연관 배열도 정렬 할 수 있음).