En PHP, les tableaux associatifs sont implémentés comme des hashtables, avec quelques fonctionnalités supplémentaires.
Cependant, d'un point de vue technique, un tableau associatif n'est pas identique à un tableau de hachage - il s'agit simplement de mis en œuvre en partie avec un hashtable en coulisses. Parce que la plupart de son implémentation est un tableau de hachage, il peut faire tout ce qu'un tableau de hachage peut faire - mais il peut faire plus, aussi.
Par exemple, vous pouvez parcourir un tableau associatif à l'aide d'une boucle for, ce que vous ne pouvez pas faire avec un tableau de hachage.
Donc, bien qu'ils soient similaires, un tableau associatif peut en fait faire un superset de ce que peut faire une table de hachage - ce n'est donc pas exactement la même chose. Considérez-les comme des tables de hachage avec des fonctionnalités supplémentaires.
Exemples de codes :
Utiliser un tableau associatif comme une table de hachage :
$favoriteColor = array();
$favoriteColor['bob']='blue';
$favoriteColor['Peter']='red';
$favoriteColor['Sally']='pink';
echo 'bob likes: '.$favoriteColor['bob']."\n";
echo 'Sally likes: '.$favoriteColor['Sally']."\n";
//output: bob likes blue
// Sally likes pink
Boucle dans un tableau associatif :
$idTable=array();
$idTable['Tyler']=1;
$idTable['Bill']=20;
$idTable['Marc']=4;
//up until here, we're using the array as a hashtable.
//now we loop through the array - you can't do this with a hashtable:
foreach($idTable as $person=>$id)
echo 'id: '.$id.' | person: '.$person."\n";
//output: id: 1 | person: Tyler
// id: 20 | person: Bill
// id: 4 | person: Marc
Notez en particulier comment, dans le deuxième exemple, l'ordre de chaque élément est maintenu (Tyler, Bill Marc) en fonction de l'ordre dans lequel ils ont été saisis dans le tableau. Il s'agit d'une différence majeure entre les tableaux associatifs et les tables de hachage. Une table de hachage ne maintient aucun lien entre les éléments qu'elle contient, alors qu'un tableau associatif PHP le fait (vous pouvez même trier un tableau associatif PHP).
1 votes
Voir stackoverflow.com/questions/2350361/